Возврат расширенной записи на основе идентификатора как часть результата JSON - PullRequest
1 голос
/ 19 апреля 2011

У меня есть сервер Rails, который возвращает данные в мое мобильное приложение в формате JSON, как показано ниже:

В контроллере,

format.json { render :json => @game }

Который возвращается,

{"game":{"created_at":"Thu, 14 Apr 2011 11:14","title":"Banana throwing","updated_at":"Thu, 14 Apr 2011 11:16","id":5,"day":"2011-07-14","location_id":5}}

Возвращаемая запись включает в себя ссылку из таблицы «игра» на другую таблицу, «местоположение» и, в частности, запись с идентификатором 5 в этой таблице.

Теперь мое мобильное приложение могло бы перепрыгивать через некоторые обручи для разрешения этого location_id в другой таблице, но было бы намного проще, если бы JSON, который первоначально возвращается, уже разрешил значение location_id и включил расширенный запись 'location' в исходном результате, что-то вроде

{"game":{"created_at":"Thu, 14 Apr 2011 11:14","title":"Banana throwing","updated_at":"Thu, 14 Apr 2011 11:16","id":5,"day":"2011-07-14","location":{"place":"Buckingham Palace"}}}

... где запись с идентификатором 5 в таблице местоположений была расширена как вложенный JSON.

Возможно ли это сделать на стороне сервера, и если да, то как?

Любая помощь с этим будет очень признательна.

Спасибо.

1 Ответ

5 голосов
/ 19 апреля 2011

Попробуйте:

format.json { render :json => @person.to_json(:include => [:location]) }

Извините за краткий ответ, но to_json с :include в значительной степени.Я только что не тестировал его в контроллере, но попробовал в консоли, и все было в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...