Как сделать соединение между 2 таблицами в Rails, которое возвращает данные обеих таблиц - PullRequest
1 голос
/ 12 ноября 2011

Я пытаюсь объединить две таблицы: Rooms и Room_Types (которые уже связаны).Дело в том, что я пытаюсь сделать что-то вроде:

room = Room.all :conditions => ['rooms.id = ?', @room_id],
                :joins      => :room_type

room.to_json

.. и этот JSON отправляется на мой взгляд.

Тем не менее, JSON показывает только полятаблица Room и не включает поля Room_Type, и мне нужны поля обеих таблиц в этом JSON.Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 12 ноября 2011

:joins выполняет только JOIN. Как и в SQL, это не добавляет столбцы таблицы JOINed к результатам. Если вы хотите сделать это, вы должны использовать :include вместо:

rooms = Room.all :conditions => [ 'rooms.id = ?', @room_id ],
                 :include    => :room_type
rooms.to_json

Или, на языке Rails 3:

rooms = Room.where(:id => @room_id).include(:room_type).all
rooms.to_json
0 голосов
/ 12 ноября 2011

попробуй

Room.joins(:room_type).where(:id => @room_id).select('room_types.foo as foo, room_types.bar as bar')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...