2
4

More than 3 years have passed since last update.

[rails]ransackを使用して検索機能

Posted at

今回はransackを使用して、検索機能を実装したのですが
少しだけ悩んだところがあったので抜粋して書きます。

ActiveHashで保存したデータを検索するには

今回の課題はこれです。
まあ後から考えてみれば普通にできたんですけど..
とりあえず記録しておきます。

gem 'ransack'

導入後bundle install をしてサーバーを立ち上げなおしてください。
 

まずアプリケーションコントローラーでこのように定義してください

application_controller.erb

def search
      @search= Pet.ransack(params[:q]) # 検索オブジェクトを生成
      @pets=@search.result
    end

これで検索をかけています。
キー(:q)を使って、Petテーブルからペットを探しています。
@search= Pet.ransack(params[:q])

search.html.erb
<%= search_form_for @search,url: search_pets_path do |f| %>

<div class="search-field">
        <%= f.label :bleed_id_eq, '種類の選択' %>
        <%= f.collection_select :bleed_id_eq, Bleed.all, :id, :name, include_blank: '指定なし'%>
        </div>

注意 url: search_pets_path これがなかったら エラーがでます

_eqは条件に合った検索を行うためのメゾットになります。
第3引数を:idにするのを間違えないでください。

これでできました。
かなり簡単ですね。w
引数をいろいろ当てはめて探りながらやってたらできました笑

2
4
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
2
4