Rails 3 response_to json, с настраиваемыми атрибутами / методами

В приложении 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
}

Очевидно, я подхожу к этому неверно. Может ли кто-нибудь указать мне в правильном направлении?

7
задан aaronrussell 28 June 2011 в 16:21
поделиться