2016-10-18 16 views
1

我試圖做的高級別工作。 我有一個House模型和一個House has_many Rooms。房屋和房間都有身份證。我試圖讓包含具有一定ID的房屋一組ID: 數據:(4.2.6軌)如果模型中有一個ID爲ID的集合,Rails將獲得ID數組

houses = [{ 
    id: 1, 
    rooms: [{ id: 1}, {id: 2}, {id: 3}] 
},{ 
    id: 2, 
    rooms: [{id: 2}] 
}] 

House.where(rooms: contain(id: 2)) 

,應返回[1, 2],因爲兩個房屋的房間ID均爲2

House.where(rooms: contain(id: 1)) 

這應該返回[1]。

回答

2

試試這個:

House.joins(:rooms).where(:rooms => {:id => 5}).pluck(:id) 
2

如果所有你關心的是id值,您可以使用pluck

House.where(...).pluck(:id) 
+0

的地方拉姆達裏面,你怎麼引用當前衆議院實例的客房收藏? –

+2

當你調用類方法時,沒有「當前房子」。這是一個查詢構造函數,而不是一個實例方法。 – tadman

相關問題