gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:22:48 24 4
gpt4 key购买 nike

我在 Rails 中有一个对象,它具有属性 A、B、C、D 和 E。当通过 JSON 对象将此对象传递回客户端时,我如何告诉 Rails Controller 只包含属性 A 和 D JSON 对象?

在我的用户 Controller 中,我的代码如下:

    @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

将调用 to_json在@user 对象上。和 to_json方法将使用 as_json方法来完成它的工作。因此,您可以轻松覆盖 as_json只将您想要的内容传递给客户。如下所示:
def as_json options={}
{
attr1: attr1,
attr2: attr2
}
end

关于ruby-on-rails - 指定传递给 JSON 对象的 Rails 对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com