ember-data hasMany and belongsTo(habtm)

时间:2013-05-29 17:47:37

标签: ruby-on-rails-3 ember.js ember-data

我正在尝试每天在ember中学习新东西,而且我遇到了ember-data和很多关联。

使用了库

Rails 3.2.13
gem act_as_taggable_on
ember RC2
ember-data (rev: 12), RESTfulAdapter

问题

我想添加标记功能,这意味着“向帖子添加和删除标记”。所以我需要一个包含许多标签的帖子模型。但是相同的标签可以在不同的帖子上使用,因此标签也有很多帖子。

Post.js

App.Post = Ember.Model.extend({
  title: DS.attr('string')
  body: DS.attr('string')
  tags: DS.hasMany('App.Tag')
})

Tag.js

App.Tag = Ember.Model.extend({
  name: DS.attr('string')
  posts: DS.hasMany('App.Post')
})

尝试向帖子添加新标签并提交更改后,我的json有效负载总是错过post_id。

JSON发送到rails

{"tag"=>{"name"=>"test tag name"}}

使用连接模型没有帮助,感觉两者都是糟糕的方法。

我已经阅读了ember-data的测试规范,但没有habtm或类似的测试用例,所以也许它不受支持。

问题

在两侧定义hasMany和belongsTo关联的ember方法是什么,或者有更好的方法来解决我的问题?

如果ember-data不支持它,我的问题怎么解决?

1 个答案:

答案 0 :(得分:0)

默认情况下,其余适配器仅在belongsTo端发送外键。您需要覆盖此钩子https://github.com/emberjs/data/blob/master/packages/ember-data/lib/serializers/json_serializer.js#L169以在非嵌入式案例中添加hasMany ID。