1

私はいくつかのモデル、City、Hotel、および Room を持っています。シティhas_manyホテル、ホテルのhas_many部屋。各部屋には価格があります。最低価格の部屋、昇順、降順で並べ替えようとしています。

検索結果には、ホテルの最低価格も表示されています。これで価格のお尻で正常に並べ替えることができます

City.first.includes(hotel: :rooms).order("rooms.price asc")

しかし、私は常に最低価格を表示したいので、ホテルの最高の部屋価格でソートされるため、高いものから低いものへとソートしたい場合、これは機能しません。

ホテルの最低宿泊料金で並べ替える方法はありますか? で注文しようとするとMIN(rooms.price) desc、エラーが発生します。

4

1 に答える 1

1

都市モデル

attr_accessible :name
has_many :hotels

ホテルモデル

attr_accessible :city_id, :name
has_many :rooms
belongs_to :city

都市モデル

attr_accessible :hotel_id, :name, :price
belongs_to :hotel

是非お試しください

@rooms = Room.includes([:hotel => [:city]]).select('hotel_id, MIN(price) AS price').group('hotel_id').order('MIN(rooms.price) ASC')

ビューファイルで

<% @rooms.each do |room| %>
 <div>
   <div><%= room.hotel.name</div>
   <div><%= room.hotel.city%></div>
   <div><%= room.price%></div>
 </div>
<% end %>
于 2013-07-07T20:39:31.363 に答える