Rails5でransackのパラメータを調べてみた
今更ですが、ransackを試したので、覚書として残します。
環境:
rails 5.1.6
ruby 2.3.1
概要:
scaffoldでblogsテーブル(カラムはtitle、contentのみ)を作成。
contentの文字列に対し、あいまい検索をしてみる。
blogs_controller.rb
class BlogsController < ApplicationController def index @search = Blog.ransack(params[:q]) @blogs = @search.result end // 以下省略
blogs/index.html.erb
// 省略 <%= search_form_for @search do |f| %> <%= f.label :content_cont %> <%= f.search_field :content_cont %> <div class="actions"><%= f.submit "検索" %></div> <% end %> // 省略
これで/blogsにアクセスするとこんな感じになる
つづいて、検索欄に「はじ」と入れて検索をポチッとする。
すると、SQLではこんな命令が飛ぶ。
ちなみにパラメータはこんな感じ。
検索の結果も正しく表示できました。
content_eqにすると、完全一致となります。
blogs/index.html.erb
// 省略 <%= search_form_for @search do |f| %> <%= f.label :content_eq %> <%= f.search_field :content_eq %> <div class="actions"><%= f.submit "検索" %></div> <% end %> // 省略