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