大規模なSQL結合を引き出すのではなく、Railsの関係を使用して頭を上げようとしていましたが、私はこれを回避することができません...複数のモデル間の平均レール
は私が3つのモデル
ホテル 部屋 Availables
彼らはすべて適切にhas_manyとbelongs_toの関係を持っています。
私がやりたいことは、特定の都市のホテル一覧の概要ページにある、私は各ホテルで見つかった最低価格を列挙したいと思います。当然の
def self.price
Available.minimum(:price,
:conditions => [ "price <> 0" ])
end
これはただのすべての最低価格を引っ張る私はもちろんの下部にあるコードのビットを行うだろうが、レールに、私はこのような何かを行うことができ、SQLで今
...彼らではなく、特定の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