######前提・実現したいこと
rails6.0.3.4でkaminariを使用してページネーションしているのですが、複数単語検索によるページネーションができないです。画面に全結果が表示され、降順も反映されません。ページの一番下にはページ遷移ボタンがあるのですが、遷移先は遷移前の画面がそのまま表示されてしまいます。
######controller
def search redirect_to root_path if params[:keyword] == "" split_keyword = params[:keyword].split(/[[:blank:]]+/) @articles = [] split_keyword.each do |keyword| next if keyword == "" @articles += Article.joins(:tags).where('title LIKE(?) OR content LIKE(?) OR tags.name LIKE(?)', "%#{keyword}%", "%#{keyword}%", "%#{keyword}%") end @articles.uniq! @articles = Article.page(params[:page]).order("created_at DESC") end
#####search.html.erb
<div class="contents row"> <%= render partial: "shared/articles", locals: { article: @articles } %> <%= paginate @search_resoult %> </div>
######試したこと
当初は1単語検索をしており、モデルに処理を記述し、コントローラーで@articles = Article.search(params[:keyword]).page(params[:page]).order("created_at DESC")
とすることでページネーションをしていました。
ただ、複数単語検索をやろうとした時に理解が及ばず、モデルとコントローラーの繋がりがわからなくなってしまったので、コントローラーに記述し直しました。そのため、
@articles = Article.page(params[:page]).order("created_at DESC")
という記述でページネーションを試みたのですが、うまくいきません。
自分ではArticle.〇〇で指定するのではと思っているのですが、findやwhereを使ってみたのですがうまくいかず、どこの何を指定すればいいのかが全くわからなくなってしまった状態です。
かなりサイトで調べたりしたのですが、同じ境遇でのページネーションが中々見つからず困っています。
どなたか詳しい方がいらっしゃったら教えていただきたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/29 08:46