我正在使用to_json,並且包括關聯。 但是,生成的json對象包含所有關聯對象的方法,即使我要求它排除方法。Ruby to_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
,結果是一樣的。 任何其他建議,將不勝感激。