Я использую 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
И результаттот же самый.Любые другие предложения будут оценены.