2013-07-07 4 views
1

City, Hotel 및 Room이라는 몇 가지 모델이 있습니다. 도시 has_many 호텔, 호텔 has_many 객실. 각 객실에는 가격이 있습니다. 나는 가장 낮은 가격의 방, 오름차순 및 내림차순으로 정렬하려고합니다.활성 레코드를 분당 값으로 정렬합니다.

제 검색 결과에 최저 가격을 제시하고 있습니다. 나는 성공적 종류이

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

와 가격 엉덩이에 의해 수 있어요하지만 난 항상 최저 가격을 표시 할 때부터이 낮은 종류의 높은 원하는 경우가로 정렬 때문에,이 작동하지 않습니다 호텔의 최고 객실 요금.

호텔 최소 객실 가격을 기준으로 정렬 방법이 있습니까? MIN(rooms.price) desc으로 주문하려고하면 오류가 발생합니다.

답변

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') 
,369로

보기 파일에

<% @rooms.each do |room| %> 
<div> 
    <div><%= room.hotel.name</div> 
    <div><%= room.hotel.city%></div> 
    <div><%= room.price%></div> 
</div> 
<% end %> 
+1

특정 도시의 호텔을 선택하려고하면 어떻게됩니까? – AdamB

관련 문제