我在Rails中拥有属性A,B,C,D和E的对象。当通过JSON对象将此对象传递回客户端时,如何我可以告诉rails控制器只在JSON对象中包含属性A和D吗?指定传递给JSON对象的Rails对象的属性
在我的用户控制,我的代码如下:
@user = User.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @user}
end
此代码的工作,然而,返回的JSON对象包含@user对象的所有属性。在将任何内容发送回客户端之前,如何限制包含在JSON对象中的属性?
更新:lucapette提供了一些有关在幕后发生的事情的良好背景。因为有些时候,我可能会想所有属性回来后,我结束了使用下面的代码:
format.json { render :json => @user.to_json(:only => ["id"])}
谢谢,lucapette。在阅读你的回复之后,我查看了to_json和as_json方法。然后,我修改了我的代码,如下所示:format.json {render:json => @ user.to_json(:only => [“id”])}。似乎在那里一定有一些多余的代码,但我找不到另一种方式使它工作。 – Vee 2012-01-29 19:20:50
是的,你也可以使用这些选项。它也可以很好地工作。这取决于你必须面对的情况。 – lucapette 2012-01-29 19:26:50