2015-04-15 80 views
3

我不得不模型,其中間有許多畫廊和畫廊屬於房間。我想這是我使用的包括活動記錄兩個表中的信息..Rails包含不軌控制檯上工作

room = Room.includes(:galleries).where(id: id_number)

room = Room.joins(:galleries).select("room.*, galleries.name").where(id: id_number

上面的代碼查詢沒有獲取圖庫部分,它只獲取房間信息。我很困惑如何使用includes。我已經看了== == http://railscasts.com/episodes/181-include-vs-joins

謝謝!

+0

嘗試'Room.includes(:畫廊)。凡(ID:ID_NUMBER)。每個{|房間|在您的控制檯中,您將看到只有一個SQL查詢被觸發,以收集所有具有與您的房間號(s)相同的'room_id'的'圖庫'記錄。 – MrYoshiji

回答

1

如果你只是要加載的房間,它在一個查詢,然後

room = Room.includes(:galleries).find(id_number)會做的伎倆畫廊。

但我想你是誤解joinsincludes正在做什麼。你將永遠得到一個房間的對象。如果你想訪問畫廊,你必須撥打room.galleries

+0

謝謝先生..我怎麼能在兩張桌子上得到這兩個信息?有畫廊的房間? –

+0

如何在一個查詢中獲取這兩個信息? –

+0

你在一個查詢中得到它。調用'room.galleries'不會觸及數據庫。 – PoloniculMov