ransackを利用して検索機能を実装しております。
・絞り込み機能
・キーワード検索機能
・and検索 / or検索
の実装を考えております。
ransackのデフォルトがand検索なのでしょうか。
and検索の場合、「絞り込み機能」と「キーワード検索機能」を併用した場合には「絞り込み結果からキーワードにマッチする検索結果」になるのですが、or検索の場合にうまくいきません。
絞り込み機能のor検索はうまく機能しております。
アドバイスをいただけますと幸いです。
controller.rb
ruby
1 def index 2 if params[:search_ctg] == "0" 3 @search = Note.search(params[:q]) 4 @notes = @search.result.page(params[:page]).uniq.order(created_at: :desc) 5 render 6 elsif params[:search_ctg] == "1" 7 @search = Note.search(params[:q].try(:merge, m: 'or')) 8 @notes = @search.result.page(params[:page]).uniq.order(created_at: :desc) 9 render 10 else 11 @search = Note.search(params[:q]) 12 @notes = @search.result.page(params[:page]).uniq.order(created_at: :desc) 13 render 14 end 15 end 16
search_ctgでand検索 or検索の分岐(0:and検索 1:or検索)
.try(:merge, m: 'or')で絞り込み機能のor検索は実現できました。
あなたの回答
tips
プレビュー