카테고리별, 최대 좋아하는 수의 투고를 별도 표시

개요



투고별로, 좋아하는 수가 최대치의 대답을 별도로 표시할 수 있는 방법에 대해서 설명하고 있다.

버전



루비 버전 ruby-2.6.5
Rails 버전 Rails:6.0.0

전제



・좋아 기능을 실장 완료



할 수 있는 일



좋아요 수, 최대의 투고를 별도로 표시할 수 있다.



이번 예(테이블에 대해서)



투고・・・definition
답변 ... answer
좋아요 · · like

구현의 전체 이미지



① 컨트롤러에 인스턴스 변수 정의

②view에 표시를 위한 each 메소드를 이용한 기술

구현



① 컨트롤러에 인스턴스 변수 정의



app/controllers/definitions_controller.rb
def show
〜省略〜
    @rank = Answer.find(Like.where(definition_id: params[:id]).group(:answer_id).order('count(answer_id) desc').limit(1).pluck(:answer_id))
  end
〜省略〜

※limit(1)의 ( )내의 수치를 변경하면 랭킹 표시로서 실장도 할 수 있다.

②view에 표시를 위한 each 메소드를 이용한 기술



app/views/definitions/show.html.erb

〜省略〜

   <% @rank.each do |rank| %>
      いいね数が最も多い回答</br>
       <%= link_to rank.user.nickname, "/users/#{rank.user_id}" %>
         <div class="box"><%= rank.answer %></div> #←記述はここ
         <i class="fas fa-heart"></i><%= rank.likes.count %>
   <% end %>

〜省略〜

※i class 이하는 Font Awesome를 사용하고 있다
※CSS는 임의의 지정

완성



이 방법을 사용하면 카테고리별로 가장 좋아하는 게시물 수를 볼 수 있습니다.
컨트롤러에서 where 메소드를 사용하지 않으면 이미지 핑크색 게시물이 카테고리를 넘어도 영원히 반복됩니다.

이상입니다.

좋은 웹페이지 즐겨찾기