我一直在試圖讓我的頭繞着使用我的Rails關係做事,而不是拔出大的SQL連接,但我無法圍繞這一個包裹我的頭......多個模型之間的平均杆
我有3種型號
酒店 客房 可獲取
他們都有適當的has_many和belongs_to的關係。
我想要做的是在概述頁面上列出某個特定城市的酒店,我想列出爲每個酒店找到的最低價格。
在SQL現在,我當然會做的底部代碼的位,但在鐵軌我可以做這樣的事情......
當然def self.price
Available.minimum(:price,
:conditions => [ "price <> 0" ])
end
這只是翻出所有的最低價格他們,而不是特定的ID
問題是關係Hotel.find(1234).rooms.availables
但我想這樣做,可以去我的循環中,而不必引用ID?
SELECT MIN(availables.price)
FROM availables
INNER JOIN rooms ON rooms.id = availables.room_id
INNER JOIN hotels ON hotels.id = rooms.hotel_id
WHERE hotels.id = 5077 and rooms.private = 0 and availables.price <> 0