2013-05-29 81 views
0

我想每天都在學習ember中的新事物,並且堅持使用ember-data和hasMany association。ember-data hasMany and belongsTo(habtm)

使用庫

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發送到軌道

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

使用連接模式並沒有幫助和感覺都是不錯的辦法都沒有。

我已經通讀了ember-data的測試規範,但沒有habtm或類似的測試用例,所以也許它只是不被支持。

問題

什麼是灰燼的方式來定義雙方的hasMany和屬於關聯關聯或有一般一個更好的辦法來解決我的問題?

如果ember-data不支持它,我的問題怎麼解決?

+0

這可以通過覆蓋標籤模型的RESTAdapter來解決嗎? – Mike

回答

0

默認情況下,其餘適配器僅在belongsTo端發送外鍵。您需要覆蓋此掛鉤https://github.com/emberjs/data/blob/master/packages/ember-data/lib/serializers/json_serializer.js#L169以在非嵌入式大小寫中添加hasMany ID。

+0

謝謝伊戈爾特。也許我錯過了一些東西,但是你的模特看起來像你的情況?目前我在**兩邊都有一個hasMany。是否有某處用於覆蓋部分序列化程序的文檔? – Mike

+0

不太確定你的問題是什麼。你能發佈一個jsbin嗎?這裏有一個很好的默認的ember-data jsbin http://emberjs.jsbin.com/vuxijava/1/edit – IgorT