我正在尝试加入两个表:Rooms
和Room_Types
(已经有关系)。问题是,我正在尝试做类似的事情:
room = Room.all :conditions => ['rooms.id = ?', @room_id],
:joins => :room_type
room.to_json
..而且这个JSON正被发送到我的视野。
但是,JSON只显示Room表的字段,不包括Room_Type字段,我需要这个JSON中的两个表字段。我怎么能做到这一点?
答案 0 :(得分:1)
: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
答案 1 :(得分:0)
试
Room.joins(:room_type).where(:id => @room_id).select('room_types.foo as foo, room_types.bar as bar')