我一直在尝试使用我的 Rails 关系而不是拉出大型 SQL 连接来解决问题,但我无法围绕这个问题解决...
我有 3 个模型
酒店 房间 可用
它们都有适当的 has_many 和 belongs_to 关系。
我想要做的是在列出特定城市酒店的概览页面上,我想列出为每家酒店找到的最低价格。
现在在 SQL 中我当然会在底部做一些代码,但在 Rails 中我可以做这样的事情......
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