有许多通过自我加入batmanjs

时间:2014-08-27 10:19:13

标签: has-many-through self-join batman.js

我正在努力实现一个有很多通过关系的详细here。但是,我的相关模型通过自联接与引用模型相同。我试过这个:

class Article extends Batman.Model
  @hasMany 'citations'
  @hasMany 'usages', name: 'Citation', foreignKey: 'referenced_article_id'

  @accessor 'referenced_articles', ->
    @get('citations').mappedTo('referenced_article')

class Citation extends Batman.Model
  @belongsTo 'article'
  @belongsTo 'referenced_article', name: 'Article'

不幸的是,调用my_article.get('referenced_articles')会出错。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

由于您的关联名为usages(不是citations),您可以尝试:

@accessor 'referenced_articles', ->
  @get('usages').mappedTo('referenced_article')

答案 1 :(得分:0)

啊,拍。我没有在0.16中将mappedTo添加到SetProxy。这个PR修复了:https://github.com/batmanjs/batman/pull/1052

你可以从batmanjs.org/download.html获得大师,也可以用以下方式修补它:

Batman.AssociationSet::mappedTo = Batman.Set::mappedTo

(这就是我所做的,直到我更新为掌握)

对不起!!