use*_*052 7 ruby json overriding ruby-on-rails ruby-on-rails-3
我正在使用Ruby on Rails 3,我想覆盖该to_json方法.
这时我使用以下代码以避免导出重要信息.
def to_json
super(
:except => [
:password
]
)
end
Run Code Online (Sandbox Code Playgroud)
如果我想使用该方法更改值,我该怎么办?
例如,我想将用户名大写
:name => name.capitalize
Run Code Online (Sandbox Code Playgroud)
检索这个
@user.to_json
Run Code Online (Sandbox Code Playgroud)
zet*_*tic 11
如果你想render :json => @user在控制器中使用Rails 3,你可以as_json在模型中覆盖:
class User < ActiveRecord::Base
def as_json(options={})
result = super({ :except => :password }.merge(options))
result["user"]["name"] = name.capitalize
result
end
end
Run Code Online (Sandbox Code Playgroud)
这是关于to_json和as_json之间差异的好文章.
| 归档时间: |
|
| 查看次数: |
6388 次 |
| 最近记录: |