Cra*_*all 9 json ruby-on-rails
我有一个拥有所有者方法的模型对象数组.此方法需要将一个参数传递给它才能工作.我需要将模型对象序列化为json并包含owner方法的值.
我如何将参数传递给to_json我目前使用的方法
objects.to_json(:methods => :owner)
Run Code Online (Sandbox Code Playgroud)
包括所有者方法,但因为我没有传递参数它不起作用.
ava*_*tok 20
注意:注释适用于Rails 2.3,没有尝试过这个w/Rails 3.
我不相信你能用to_json的方式做到这一点,所以我认为你有两个选择:
1.通过调用一个方法来保存你的对象,在一个变量中存储正确的值,然后'owner'方法在to_json调用期间读取该变量.
2.在模型中覆盖as_json:
def as_json(options = {})
json = super(options)
json['owner'] = owner(options[:param_for_owner])
json
end
Run Code Online (Sandbox Code Playgroud)
然后在你的to_json调用中传入:param_for_owner:
objects.to_json(:param_for_owner => 'foo')
Run Code Online (Sandbox Code Playgroud)
请注意,注入值的位置取决于ActiveRecord :: Base.include_root_in_json的配置方式.
| 归档时间: |
|
| 查看次数: |
7901 次 |
| 最近记录: |