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 3 years have passed since last update.

ransack使用 検索機能実装

Last updated at Posted at 2020-12-23

はじめに

※すでにアプリケーションがある定で書いてます。

rails用の検索機能を実装する為のgemになります。
検索キーワードを元に紐付いたデータを取得
逆にキーワードが無い場合は全て取得する。

手順

Gemfileにransackを記述してbundle install

Gemfile
gem 'ransack'
ターミナル
bundle install

次に
コントローラーにransackを機能を利用する処理を書きます。

app/controllers/users_controller.rb
class UsersController < ApplicationController
  def index
    @q = User.ransack(params[:q])
    @users = @q.result
    #resultメソッドで結果を返します
  end
end

次に
ビューファイルに検索フォームを書きます。
ransackを使用した検索フォームはsearch_form_forというヘルパーメソッド を使います。

app/views/users/index.html.erb
<%= search_form_for @q do |f| %>
      <div class="d-flex">
        <div class="form-group flex-grow-1">
         #検索窓  
          <%= f.search_field :name_cont, placeholder: "〇〇を探す", class: "form-control" %>
        </div>
        <div> 
        #検索
        <%= f.submit "検索", class: "btn btn-primary ml-1" %>
        </div>
      </div>
    <% end %>

今回は「部分一致検索」が目的の為カラム名_contにしています。
「一致検索」の場合は,カラム名_eq とします。

検索機能完成

検索機能ができました!
ezgif-3-d2096169635d.gif

※Qiiteに動画のアップロード初めてでしたが、上手く行きました!
この記事には関係ありませんが参考になりました!:relieved:
https://qiita.com/bohebohechan/items/f8bf6d4bbe0f14497a7b

終わりに

ざっくりとした内容になりましたが、
結論画期的なgemを作って下さった技術者に感謝です!:joy:

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?