0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rails 検索機能を実装する

Posted at

1、ransackのgemをインストール

gem 'ransack'

2、アクションに検索処理を実装

boards_controller.rb
def index
  @boards = Board.page(params[:page]).includes(:user)
  @q = Board.ransack(params[:q])
  @results = @q.result
end

params[:q]には実際に検索した値がデータとしてが入っている。
ransackメソッドは引数に渡した値を元にDBからデータを抽出している。
resultメソッドはransackメソッドで検索した内容をActiveRecordのオブジェクトに変換する。

3、検索フォームを作成する。

_search.html.erb
<%= search_form_for @q, url: url do |f| %>
  <%= f.search_field :title_or_body_cont,class:'form-control', placeholder:"検索ワード" %>
  <%= f.submit "検索", class: 'btn btn-primary' %>
<% end %>

ransackジェムによりsearch_form_forメソッドが使えるようになる。
search_form_for @qはフォームに入力した検索ワードをindexアクション内のparams[:q]として@qに送っている。
title_or_body_contはtitleとbodyから完全一致という意味である。(https://pikawaka.com/rails/ransack#_contメソッド)

### 参考にしたURL
https://pikawaka.com/rails/ransack#_contメソッド

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?