前提・実現したいこと
投稿記事を、いいねの多い順に表示するページを作成しています。
いいねの多い順にしてかつ、ページネーションを設定したいのですが、うまくページネーションが反映してくれません。
多対多の関連の数でorderが無事完了した後に、ページネーションの設定を上手くビューにあてたいです。よろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
記事を投稿するモデル(cafeteria)にcreate_all_ranksメソッドを定義
CafeteriaRB
1 def self.create_all_ranks 2 Cafeteria.joins(:likes).group(:cafeteria_id).order('count(cafeteria_id) desc') 3 end
コントローラーにページネーションを設定
CafeteriasController
1 def popular 2 @all_ranks = Cafeteria.create_all_ranks 3 @cafeterias = @all_ranks.includes(:user).page(params[:page]).per(6) 4 end 5(省略)
いいねランキングのビューの部分
PopularHtmlHaml
1%section.section 2 .cafeterias-container 3 .columns.is-multiline 4 - @all_ranks.each do |cafeteria| 5 = render partial: "cafeteria", locals: { cafeteria: cafeteria } 6 = paginate(@cafeterias)
アソシエーション
LikeRb
1class Like < ApplicationRecord 2 belongs_to :user 3 belongs_to :cafeteria 4 validates_uniqueness_of :cafeteria_id, scope: :user_id 5end
試したこと
補足情報(FW/ツールのバージョンなど)
rails 5.2.4.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。