掲示板の検索機能を実装

Gemfileに追記

gem 'ransack'

bundle installする

 

コントローラーへ検索機能を追加する

def index
@q = Board.ransack(params[:q])
@boards = @q.result(distinct: true).includes(:user).order(created_at: :desc)
.page(params[:page])
end

 

ビューに検索フォームを追加する

<%= search_form_for @q, class: 'mb-5' do |f| %>
<div class="input-group mb-3">
<%= f.search_field :title_or_body_cont, class:'form-contro'%>
<div class="input-group-append">
<%= f.submit '検索', class:'btn btn-primary'%>
</div>
</div>
<% end%>

f.search_fieldの:title_or_body_contを変更することで検索する内容を変更できる

(例 :title_cont, :body_cont)

 

パーシャルを使用する場合

<%= search_form_for q, url: url do |f|%>

 

renderする

<%= render 'ファイル名', q: @q, url: boards_path %>