与通过和自定义键列的书架关系

时间:2016-09-01 16:05:40

标签: bookshelf.js

这是我的关系链。

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

我希望获得一个Application的自定义关系applicant_skills,最好加入ratings。所以我希望这样的东西能起作用:

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

但我无法让它发挥作用。我尝试了&#34; key&#34; -parameters的不同组合,但似乎没有一个对我有效。

1 个答案:

答案 0 :(得分: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');
    }
});