我有一個擁有所有者方法的模型對象數組。這個方法需要一個參數傳遞給它才能工作。我需要將模型對象序列化爲json幷包含所有者方法的值。Rails to_json:有參數的方法
我會如何去傳遞參數爲to_json
方法我目前使用的
objects.to_json(:methods => :owner)
包括所有者的方法,但因爲我不是傳遞參數這是行不通的。
我有一個擁有所有者方法的模型對象數組。這個方法需要一個參數傳遞給它才能工作。我需要將模型對象序列化爲json幷包含所有者方法的值。Rails to_json:有參數的方法
我會如何去傳遞參數爲to_json
方法我目前使用的
objects.to_json(:methods => :owner)
包括所有者的方法,但因爲我不是傳遞參數這是行不通的。
注意:評論應用到Rails 2.3,沒有試過瓦特/ Rails的3
我不相信你可以做到這一點瓦特/ to_json的工作方式,所以我覺得你有兩個選擇:
1.通過調用一個方法來將正確的值存儲在'owner'方法在to_json調用期間讀取的變量中,從而準備對象。
2.Overriding as_json在你的模型:
def as_json(options = {})
json = super(options)
json['owner'] = owner(options[:param_for_owner])
json
end
然後在您的通話to_json只是傳遞:param_for_owner:
objects.to_json(:param_for_owner => 'foo')
注意,如果你注入你的價值將取決於你的ActiveRecord :: Base.include_root_in_json已配置。
這不完全美麗,但它的作品。 – 2011-08-09 15:32:08
你是如何使用JSON的?爲什麼你不能傳遞參數給#to_json? – 2011-02-28 04:45:15