2016-09-01 5 views
1

これは私の関係チェーンです。本棚キーとカスタムキー列のブックシェルフの関係

applications.applicant_id -> users.id -> skills_users.user_id 
             skills_users.id <- ratings.rateable_id 

私は、カスタム関係applicant_skillsApplicationを取得したい、そして好ましくはratingsに参加。だから私はこのようなものがうまくいくことを望んでいた:

applicant_ratings: function() { 
    return this.belongsToMany('SkillUser').through('User') 
}, 

しかし、私はそれを動作させることはできません。私は "キー"パラメータのさまざまな組み合わせを試しましたが、どれも私のためにはうまくいかないようです。

答えて

0

'users'はピボットではありませんが、'skills_users'です。より多くのように:

applications.applicant_id -> users.id <- skills_users.user_id 
             skills_users.id <- ratings.rateable_id 

多分試してみてください。

var Application = bookshelf.Model.extend({ 
    tableName: 'applications', 
    applicant_ratings: function() { 
     return this.belongsTo('User', 'applicant_id') 
      .hasMany('Rating') 
      .through('SkillUser','rateable_id'); 
    } 
}); 
+0

ありがとうございます。これは、 'application_id'をバインディングとした(?)'の中の '' skill_users "。" user_id "のどこに間違っているかを問うクエリーを生成します。 'application.applicant_id'をバインドする必要があります。 – Znarkus

関連する問題