加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 指定传递给JSON对象的Rails对象的属性

发布时间:2020-12-16 21:35:42 所属栏目:百科 来源:网络整理
导读:我在Rails中有一个对象具有属性A,B,C,D和E.当通过 JSON对象将此对象传回客户端时,我如何告诉rails控制器只包含属性A和D JSON对象? 在我的用户控制器中,我的代码如下: @user = User.find(params[:id]) respond_to do |format| format.html format.json { re
我在Rails中有一个对象具有属性A,B,C,D和E.当通过 JSON对象将此对象传回客户端时,我如何告诉rails控制器只包含属性A和D JSON对象?

在我的用户控制器中,我的代码如下:

@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"])}

解决方法

render :json => @user

将在@user对象上调用to_json.而to_json方法将使用as_json方法来执行其工作.所以你可以轻松地覆盖as_json,只传递你想要的客户端.如下所示:

def as_json options={}
  {
    attr1: attr1,attr2: attr2
  }
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读