##ransackとは
検索機能を少ないコードで簡単に実装できるgemです。
設定も簡単でできることもたくさんあります。
##導入方法
Gemfile
gem 'ransack'
$ bundle install
##使い方
①検索パラメーターは ":q"
②Ransack版form_forは"search_form_for"
③検索結果は"resultメソッド"で取得できる
controller.rb
class ProductsController < ApplicationController
def index
@q = Product.ransack(params[:q])
@products = @q.result(distinct: true)
end
end
view.html.erb
<%= search_form_for @q do |f| %>
# nameカラムに対して部分一致検索ができる
<%= f.label :name_cont, "商品名を含む" %>
<%= f.search_field :name_cont %>
<div class="actions"><%= f.submit "検索" %></div>
<% end %>
f.search_field :name_contのnameのところを変えるだけで違う検索を変更することができます。
検索方法 | 意味 |
---|---|
*_eq | 等しい |
*_cont | 部分一致 |
*_lteq | 以下 |
*_gteq | 以上 |
*_start | で始まる |
*_end | で終わる |