Vee*_*Vee 10 attributes json ruby-on-rails object
我在滑轨的对象具有属性A,B,C,d,和E.当通过这个对象返回给客户端通过一个JSON对象,我怎样才能告诉导轨控制器只包括属性A和d在JSON对象?
在我的Users控制器中,我的代码如下:
@user = User.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @user}
end
Run Code Online (Sandbox Code Playgroud)
但是,此代码有效,返回的JSON对象包含@user对象的所有属性.在将任何内容发送回客户端之前,如何限制JSON对象中包含的属性?
更新:lucapette提供了一些关于幕后发生的事情的好背景.由于有时我可能想要返回所有属性,我最终使用以下代码:
format.json { render :json => @user.to_json(:only => ["id"])}
Run Code Online (Sandbox Code Playgroud)
luc*_*tte 15
render :json => @user
Run Code Online (Sandbox Code Playgroud)
将调用to_json
@user对象.并且该to_json
方法将使用该as_json
方法来完成其工作.因此,您可以轻松覆盖as_json
仅将您想要的内容传递给客户端.如下所示:
def as_json options={}
{
attr1: attr1,
attr2: attr2
}
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6334 次 |
最近记录: |