如何更改覆盖“to_json”的值方法?
我正在使用 Ruby on Rails 3,我想重写 to_json
方法。
此时我使用以下代码以避免导出重要信息。
def to_json
super(
:except => [
:password
]
)
end
如果我想使用该方法更改值,我该怎么做?
例如,我想
:name => name.capitalize
在检索此内容时将用户名大写
@user.to_json
I am using Ruby on Rails 3 and I would like to override the to_json
method.
At this time I use the following code in order to avoid to export important information.
def to_json
super(
:except => [
:password
]
)
end
If I want change a value using that method, how I can do?
For example, I would like to capitalize the user name
:name => name.capitalize
on retrieving this
@user.to_json
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果你想渲染:json => @user 在 Rails 3 的控制器中,您可以覆盖模型中的
as_json
:这是一篇关于 to_json 和 as_json 之间的差异。
If you want to
render :json => @user
in the controller for Rails 3, you can overrideas_json
in the model:Here's a good post about the differences between to_json and as_json.
使用
to_json
的:methods
选项。http://apidock.com/rails/ActiveRecord/Serialization/to_json
Use the
:methods
option toto_json
.http://apidock.com/rails/ActiveRecord/Serialization/to_json