【发布时间】:2010-08-15 00:06:28
【问题描述】:
我正在使用 to_json,包括关联。 但是,生成的 json 对象包含关联对象的所有方法,即使我要求它排除方法。
我尝试过以下方法:
render :json => @entries.to_json(:include => {:labels => {:only => [:label_id, :name], :methods => []}})
render :json => @entries.to_json(:include => {:labels => {:only => [:label_id, :name], :methods => :none}})
render :json => @entries.to_json(:methods => [], :include => {:labels => {:only => [:label_id, :name], :methods => []}})
我得到以下对象:
"entry": {
"id" : "1",
"other property of entry" : "value",
...
"labels" : {
"0" : {
"name" : "animals",
"label_id" : "2",
},
"1" : {
"name" : "furry animals",
"label_id" : "5",
},
"_each" : "... method properties",
"_reverse" "... method properties",
etc...
}
}
因此,“条目”的每个 json 对象都已正确创建,关联的标签也包括在内,但我无法让它省略“标签”中的方法。
关于如何正确执行此操作的任何想法?
谢谢。
编辑:
@nirvdrum,感谢您的建议。 不幸的是,这并不能解决问题。
我已将此添加到模型中
def as_json(options={})
super(:include => {:labels => {:only => [:label_id, :name]} } )
end
控制器会这样做:
render :json => @entries
结果是一样的。 任何其他建议将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby