2016-06-23 19 views
1

私は関連するオブジェクトを扱う方法を理解しようとしています。関連付けられたオブジェクトを作成しますか?

私はadduserAttributesが動作しないいくつかの理由で二つのオブジェクト

USERATTRIBUTES

var sequelize = require('../database.js').sequelize, 
     Sequelize = require('../database.js').Sequelize, 
     User = sequelize.models.user, 
     UserAttribute = sequelize.define('userAttributes', { 
      name:  Sequelize.STRING, 
      value:  Sequelize.STRING, 
     }); 

    UserAttribute.belongsTo(User); 
    module.exports = UserAttribute; 

ユーザー

User = sequelize.define('user', {},{ 
    classMethods: { 
     createRider: function(params) { 
      var values = [], 
       userAttributes = sequelize.models.userAttributes, 
       user = User.build(), 
       name = userAttributes.build({name: 'name', value: 'params.name'}), 
       fbprofile = userAttributes.build({name: 'fbprofile', value: 'params.fbprofile'}), 
       phone = userAttributes.build({name: 'phone', value: 'params.phone'}); 

      user.save().then((user) => { 
       console.log(user); 
       user.adduserAttributes([name, fbprofile, phone]); 
      }); 


     } 
    } 
}); 

を持っています。これは私がこれで見つけたすべてのドキュメントです。

http://docs.sequelizejs.com/en/2.0/api/associations/

+0

を使用する必要があります – Sushant

答えて

2
BelongsTo

1:1の関係。つまり、1つの行のみを他のテーブル行に関連付けることができます。

その特異realtionセッターメソッド名はsetUserAttribute()、(More docs

になりますので、あなたが別のテーブルに単一の行に複数の行をリンクしたい場合、あなたは@Himmatorsを使用しているバージョンhasMany

+0

同じエラーが発生します。現在、userAttributeにリレーションを追加するだけですが、これをUserに追加する必要がありますか?ユーザーはhasManyですが、userAttributeには1つしかありません。 – Himmators

+0

はい、逆の関係も作成する必要があります。片側にbelongsToを追加し、反対側にhasManyを追加できます。 – Sushant

+0

ここでは、実行中(デフォルト):UPDATE 'userAttributes' SET' userId' = 2、 'updatedAt' = '2016-06-23 20:33:32.086 +00:00'' id' IN(NULL、NULL、 NULL)、userAttributes-tableに何も追加されていないようです。 – Himmators

関連する問題