実現したいこと
RansackでOR検索を実装したい。
前提
お世話になります。
現在Ruby On RailsでRansackを使って、複数キーワードでひとつのテーブル(Item)を検索できる機能を作りたいと考えています。
上記サイトを参考にname_eq_anyを用い、また複数キーワードを入力する際のスペースをカンマ区切りにするために、以下のように書きました。
view
1<%= search_form_for @q do |f| %> 2<%= f.search_field :name_cont_any,"キーワードを入力" %> 3<%end%>
controller
1@q = Product.ransack(params[:q]).split(",")
発生している問題
text_fieldに『ほげ ぴよ』と入力した場合、
SELECT `products`.* FROM `products` WHERE (`products`.`name` = 'ほげ' OR `products`.`name` = 'ぴよ')
となってほしいところのですが、上に述べました現状ではカンマが区切られず
SELECT `products`.* FROM `products` WHERE (`products`.`name` = 'ほげ ぴよ')
となってしまい、OR検索になりません。
どのように記載すれば想定通りのOR検索を作ることができますでしょうか。
どなたか解決策をご存知の方がいらっしゃいましたら、お知恵を貸していただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/09 05:40