gpt4 book ai didi

ruby-on-rails - 如何覆盖 'as_json' 或 'to_json' 方法,以便 'respond_to' 不包含指定信息?

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:26 25 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 3,我想覆盖(可能在模型文件中)as_jsonto_json 方法以respond_to 不包含某些信息的 HTTP 请求。

在我的帐户模型中我有

def as_json(options = {})
super(
:except => [
:password
]
)
end

在我的 Controller 中我有

format.json {
render :json => @account, :status => 200
}

例如,当我向 /account/1.json 发出请求时,我还返回了出于安全原因我不想要的密码属性。

那么,如何防止包含指定信息?


我能做到,而且行得通

format.json {
render :json => @account.to_json(:except => [:password]), :status => 200
}

但我需要重构

最佳答案

如果只有一个 Action 你可以试试:

format.json { render :json => @account, :except => :password }

如果您需要它执行多个操作,那么覆盖会更好:

# Exclude password info from json output.
def to_json(options={})
options[:except] ||= :password
super
end

as_json 也一样

# Exclude password info from json output.
def as_json(options={})
options[:except] ||= :password
super
end

关于ruby-on-rails - 如何覆盖 'as_json' 或 'to_json' 方法,以便 'respond_to' 不包含指定信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5193854/

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