如何让Rails以正确的ember.js格式生成JSON?

时间:2013-01-20 02:23:56

标签: ruby-on-rails json ember.js

在模型http://emberjs.com/guides/models/the-rest-adapter/#toc_relationships的Ember指南中,我看到应该将关联指定为id数组:

  

{         “post”:{           “评论”:[1,2,3]         }       }

我在如何在rails控制器中生成id数组时遇到了麻烦。虽然我可以:包含相关模型,但它们包含在一个哈希数组中:

  

{“name”:“Jane's Place”,“rooms”:[{“id”:1},{“id”:2},{“id”:3}]}

关于如何获得阵列形式的任何想法?

2 个答案:

答案 0 :(得分:6)

Ember建议使用active_model_serializers gem以兼容格式生成JSON。

这是一个来自active_model_serializer文档的示例,可以完全按照您的要求进行操作。 embed :ids是关键。

class PostSerializer < ActiveModel::Serializer
  embed :ids

  attributes :id, :title, :body
  has_many :comments
end

https://github.com/rails-api/active_model_serializers

答案 1 :(得分:-1)

执行此操作的替代方法是在创建响应传递时:root =&gt;真

respond_to do |format|
  format.html # index.html.erb
  format.json { render :json => @posts, :root => true }
end