2016-12-05 9 views
0

私は2つのモデルを持っています:ユーザーとInstalledApps。モデルはこのようなものです:セイルjs多くのレコードを挿入するエラー

//Users Model 
attributes:{ 
name: 'string', 
age: 'string', 
installedApps:{ 
    collection: 'installedApps', 
    via: 'users' 
} 
} 

私のinstalledAppsモデルは、このようなものです:のような

attributes:{ 
deviceID : 'string', 
users:{ 
    collection:'users', 
    via:'installedApps' 
} 
} 

は今、私はすでに、ID 1と2 でユーザーを作成しているしかし、私は郵便配達を経由してのinstalledAppsにデータを挿入するときこれは:

{ 
"users": [1,2], 
"deviceID": "123456", 
} 

エラー:Unknown rule: defaultが表示されます。私はどこが間違っているのか分からないのですか?

答えて

0

あなたはあなたのモデルを間違えたと思います。 http://sailsjs.com/documentation/concepts/models-and-orm/associations/through-associationsを使用してください。 次に、3つのモデルが必要です。 USER、APP、INSTALLED_APPS。

//Users Model 
attributes:{ 
name: 'string', 
age: 'string', 
installedApps:{ 
    collection: 'APP', 
    via: 'user', 
through: 'installedApps' 
} 
} 

とあなたのAPPのモデル::

//APP Model 
attributes:{ 
device: 'string', 
installedApps:{ 
    collection: 'APP', 
    via: 'app', 
through: 'installedApps' 
} 
} 

と最終的にあなたのINSTALLED_APPS:

//INSTALLED_APPS Model 
    attributes:{ 
    user: { 
     model: 'user' 
    }, 
    app: { 
     model: 'app' 
    } 
    } 

次にインストールしたばかりの簡単な作成に使用されますあなたのユーザモデルが得られます

すべてのユーザー/アプリまたは青写真のAPP。http://sailsjs.com/documentation/reference/blueprint-api/add-to

希望します。

1

お使いのモデルは問題ありません。 JSONとしてデータを投稿していることを確認しましたか?郵便番号のBodyタブでrawを選択し、TextからJSON (application/json)に変更します。 "123456"の後に余分なカンマを削除しても問題は解決されません。また、/installedAppsルートへのPOSTリクエストを行っていることを確認してください。 http://localhost:1337/installedApps

新しいSails.jsアプリに投稿したモデル定義でこれをテストしました。installedAppsのエントリをusersのエントリに関連付けて正しく挿入しました。

+0

実際に私はエラーを引き起こしていたjsonでも 'autoUpdateAt'を送信していました。私は 'autoUpdatedAt'が送信されるべきではないと思う。 –

+0

@DevendraVermaそうです、 'createdAt'と' updatedAt'はデフォルトで自動的に処理されます( 'config/models.js'やモデルファイルの特定のモデルに対してグローバルに設定可能)。問題が解決してうれしいです。 =) – Viktor

関連する問題