我想要做的高水平。
我有House
模型和House
has_many Rooms
。房子和房间都有id属性。我正在尝试获得一系列House ID,其中包含具有特定ID的房间:
数据:(轨道4.2.6)
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]。
答案 0 :(得分:2)
如果您关心的只是id
值,则可以使用pluck
:
House.where(...).pluck(:id)
答案 1 :(得分:2)
试试这个:
House.joins(:rooms).where(:rooms => {:id => 5}).pluck(:id)