所以我有这段代码:
render :json => { :objects => @object.object_children }
这很有效。但我唯一想要的只是某些属性。我看到了这个:filter json render in rails 3,其中就是:
respond_to do |format|
format.json { render json: @objects.object_children, :only => [:id, :name] }
end
它有效,但它返回的数据没有标签,就像这样:
id":null,"name":"foo"
我想要“:objects =>”标签在里面。感谢
答案 0 :(得分:2)
对于高级json序列化,请查看Active Model Serializers
答案 1 :(得分:1)
您必须将原始解决方案与找到的解决方案结合起来:
render :json => { :objects => @object.object_children.as_json(:only => [:id, :name]) }
编辑:解释
在原始解决方案中,您手动将密钥:objects =>
添加到响应中。
render :json => @object.object_children
# vs
render :json => { :objects => @object.object_children }
因此,要添加键和过滤返回的属性,您必须执行相同的操作,然后使用{{1}手动调用as_json(Rails将简单地返回整个集合的操作) }选项以应用过滤器。
如果您使用:only
阻止取决于您的需要。