0

帖子有很多標籤和標籤有很多帖子。在Rails中,我通常需要製作一個Post_Tags模型和遷移來加入這兩個模型。ActiveModelSerializer/EmberJS。多對多的關係。我需要Rails後端的連接模型嗎?

使用EmberJS前端,我不知道如何做序列化器和如果Post_Tags模型是必要的。

在灰燼的機型:

// app/models/post.js 
export default DS.Model.extend({ 
    heading: DS.attr('string'), 
    content: DS.attr(''), 
    fullImageUrl: DS.string('author'), 
    thumbnailUrl: DS.attr('string'), 
    pageId: DS.belongsTo('page'), 
    tagIds: DS.hasMany('tag') 
}); 

// app/models/tag.js 
export default DS.Model.extend({ 
    name: DS.attr('string'), 
    postIds: DS.hasMany('post') 
}); 

與ActiveModelAdapter預期的JSON應該是:

"posts": [{ 
    "id": 1, 
    "heading": "foo", 
    "content": , 
    "full_image_url": "foo", 
    "thumbnail_url": "foo", 
    "page_id": <page id>, 
    "tag_ids": [<tag ids>] }], 
"tags": [{ 
    "id": 1, 
    "name": "foo", 
    "post_ids": [<post ids>] 
}] 

我仍然需要一個belongs_to的一個Post_Tags模式:崗位和belongs_to的是:標籤?我需要Post_Tags序列化程序嗎?或者只是說has_many:標籤串行器中的帖子,反之亦然就足夠了?

回答

1

我從來沒有使用過ActiveModel,所以只從Ember-Data的觀點來看,你不需要加入模型。使用你發佈的模型,Ember-Data應該能夠以你想要的方式格式化JSON。你可以在ActiveModelSerializer API page上看到一些例子。

編輯:從Rails方面看,它看起來不像你需要一個連接模型。正如我所說,我從來沒有使用過ActiveModel,但似乎認爲在這種情況下加入模型將是不必要的。

+0

我想我想知道的是,我需要在Rails端的連接模型? – supahken 2014-09-07 03:26:52

+0

我更新了我的答案。 – GJK 2014-09-07 12:17:05

+0

謝謝,我會試試看。 – supahken 2014-09-07 23:46:38