私はransackを使用して私の店の検索フォームを書こうとしています。現在、名前のORで表示されるname_or_address_contオプションを使用して検索できます。私がロンドンのアディダスショップを持っていて、私がAdidas Londonとタイプしても結果はないでしょう。そこで私は、2つの属性を連結して新しい属性で検索する方法を探しました。いくつかの古い記事には次のコードがあります:Rails、Ransack gemで検索、文字列をダッシュダウン
ransacker :search_name, :formatter => proc {|v| UnicodeUtils.downcase(v) } do |parent|
Arel::Nodes::NamedFunction.new('LOWER',
[Arel::Nodes::NamedFunction.new('concat_ws', [' ', parent.table[:name], parent.table[:address], parent.table[:id]])]
)
end
ショップの名前、住所、およびIDで検索するはずのものです。しかし、私が実行すると、UnicodeUtilsでエラーが発生します。私はそれをv.downcaseに変更しようとしました!しかし別のエラーが出ます。どのようにこの問題を処理するための任意のアイデア?ありがとうございました!
これは正しい答えですか? 「Adidas London」を検索したときに期待通りの結果を返していますか? – chipairon
はい、あります:) –