2013-03-08 64 views
0

呈现,所以我有这一段代码:过滤JSON在导轨3

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" 

我希望“:对象=>”标签在里面。由于

回答

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 } 

所以要加你必须做相同的,但然后调用as_json(这是Rails的将用于简单地返回整个集合做)的关键过滤器返回的属性与:only选项申请手动过滤。

如果您使用respond_to块取决于您的需求。