2011-11-11 22 views
1

我試圖連接兩個表:RoomsRoom_Types(它們之間已有關係)。事情是,我試圖做類似:如何在Rails中的兩個表之間建立連接,以返回兩個表的數據

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

room.to_json 

..這個JSON發送到我的觀點。

但是,JSON僅顯示Room表的字段,不包含Room_Type字段,而且我需要這個JSON中的兩個表的字段。我怎樣才能做到這一點?

回答

1

:joins只執行JOIN。與SQL中一樣,這不會將JOINed表的列添加到結果中。如果你想這樣做,你應該使用:include代替:

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

或者,在Rails 3中的說法:

​​
+0

您可能需要使用':在include'你的'to_json'選項也是。 –

+0

如何使用:在我的to_json中包含? – content01

+1

@ content01您是否檢查過[文檔](http://ar.rubyonrails.org/classes/ActiveRecord/Serialization.html#M000049)? –

0

嘗試

Room.joins(:room_type).where(:id => @room_id).select('room_types.foo as foo, room_types.bar as bar')