В приложении rails у меня есть действие, которое возвращает json-представление коллекции различных моделей. Выглядит что-то примерно так:
respond_to :json
def index
@cars = Car.all
@vans = Van.all
respond_with({
:cars => @cars,
:vans => @vans
})
end
Однако я хочу настроить атрибуты и методы, которые передаются объекту json. Немного похоже на:
respond_with({
:cars => @cars.to_json(:only => [:make, :model], :methods => [:full_name]),
:vans => @vans
})
Выполнение описанного выше приводит к экранированию json-представления «автомобилей» в виде одной большой строки, например:
{
"cars":"[{\"car\":{\"make\":\"Ford\" ... etc
"vans": [{"van":{"make":"Citreon" ... vans not escaped
}
Очевидно, я подхожу к этому неверно. Может ли кто-нибудь указать мне в правильном направлении?