0
나는 석판 보석을 사용하여 특정 차원의 레스토랑을 평가하는 레일 앱을 보유하고 있습니다. 각 레스토랑의 모든 평점의 평균을 계산하여 색인 페이지의 배열에 사용자에게 표시하고 싶습니다.평균 사용자 등급을위한 SQL 쿼리 3 레일
내 SQL 쿼리는 다음과 같이 보일 것이다 -
select avg(stars) from RESTAURANTS r, RATES rs
where rs.rateable_id = r.id
group by r.name;
처럼 내 인덱스의 배열이 보인다 - 나는의 평균을 표시 레일에 SQL 쿼리를 번역 얼마나 궁금
<% @restaurants.each do |restaurant| %>
<li>
<a href="<%=restaurant_path(restaurant) %>" >
<div class="left">
<h2 class="name"><%= restaurant.name %></h2>
<h3 class="location"><%= restaurant.location %></h3>
</div>
<div class="right">
<h4 class="rate">AVERAGE RATING</h4>
</div>
<div class="clear"></div>
</a>
</li>
<% end %>
정렬.
고맙습니다! 여기서 제가 아직도 혼란스러워하는 곳이 있습니다. 이제 인덱스 뷰에서 각 레스토랑의 평균을 표시하려면 어떻게해야합니까? 제가 약간 녹슬었던 곳은 모델 메서드를 정의하고 거기에이 메서드를 추가하여 배열의 해당 메서드를 호출하는 것입니까? –
이 방법이 효과가 있지만 <% = restaurant_path (restaurant) %>를 깨뜨리는 경우 컨트롤러에서 정의하는 것보다 더 나은 방법이 있습니까? 쇼 뷰에서 평균 등급을 재사용하고 싶다고 가정하면,이 경우 헬퍼 메소드로 더 적합할까요? –
레일 경로 헬퍼는 경로를 결정하기 위해 id 값이 필요합니다. 필요한 변경 사항을 반영하도록 코드를 업데이트했습니다. 이 쿼리를 다시 사용하려면 Restaurant Model에서 스코프로 작성합니다. – eabraham