我正在使用Ruby on Rails 3,我想覆盖to_json
方法。
目前我使用以下代码以避免导出重要信息。
def to_json
super(
:except => [
:password
]
)
end
如果我想使用该方法更改值,我该怎么做?
例如,我想大写用户名
:name => name.capitalize
检索此
@user.to_json
答案 0 :(得分:10)
如果你想在Rails 3的控制器中render :json => @user
,你可以覆盖模型中的as_json
:
class User < ActiveRecord::Base
def as_json(options={})
result = super({ :except => :password }.merge(options))
result["user"]["name"] = name.capitalize
result
end
end
这是一篇关于differences between to_json and as_json的好文章。
答案 1 :(得分:0)
使用:methods
选项to_json
。