【问题标题】:ember-data hasMany and belongsTo (habtm)ember-data hasMany 和 belongsTo (habtm)
【发布时间】:2013-05-29 17:47:36
【问题描述】:

我每天都在尝试学习 ember 中的新事物,但我被 ember-data 和 hasMany 关联所困。

使用的库

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')
})

标签.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 不支持,我的问题怎么解决?

【问题讨论】:

  • 可以通过覆盖标签模型的 RESTAdapter 来解决这个问题吗?

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


【解决方案1】:

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

【讨论】:

  • 感谢 IgorT。也许我遗漏了一些东西,但是你的模型在你的情况下是什么样子的?目前我在 both 双方都有一个 hasMany。是否有用于覆盖序列化程序部分的文档?
  • 不太确定您的问题是什么。你可以发布一个jsbin吗?这里有一个不错的默认 ember-data jsbin emberjs.jsbin.com/vuxijava/1/edit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多