Как настроить ответ JSON от приложения Rails с помощью драгоценного камня Rabl

В моем приложении API для рельсов я использую гем Rabl для рендеринга JSON. Однако мне нужно, чтобы JSON был в определенном формате.

Это JSON, который мое приложение rails отправляет в качестве ответа:

  [{"lat":"49.2505","lng":"-123.1119"},{"lat":"49.2515","lng":"-123.1109"}]

Это ответ, который хочет получить клиент

  {"photos":[{"lat": 37.775, "lng": -122.4183333}, ...]}

Вот код, который отображает json в файле index.json.rabl.

collection @photos
attributes :lat, :lng

Я попробовал этот код в файле index.json.rabl, но ответ получился следующим: collection @photos node(:photos) { |photos|attributes :lat, :lng}

 [{"photos":["lat","lng"]},{"lat":"49.2515","lng":"-123.1109","photos":["lat","lng"]}]

Не совсем то, что нужно клиенту

Что мне нужно изменить в этом коде, чтобы получить правильный ответ JSON для клиента.

Большое спасибо.


person banditKing    schedule 10.09.2012    source источник
comment
Это выстрел в темноте, но вы пробовали @photos.first?   -  person pdoherty926    schedule 10.09.2012
comment
@etagnawl. Спасибо, я только что решил это :)   -  person banditKing    schedule 10.09.2012


Ответы (1)


Я решил это:

index.json.rabl

 collection @photos => :photos 
 attributes :lat, :lng

урожаи

 {"photos":[{"lat":"49.2505","lng":"-123.1119"},{"lat":"49.2515","lng":"-123.1109"}]}
person banditKing    schedule 10.09.2012