2013-10-25 10 views
5

コンソールからフィールドで簡単にワイルドカード検索を行う最も簡単な方法は何ですか?私はSQLインジェクションに対する警戒に気をつけません。Rails 4:コンソールからの簡単なワイルドカード検索

私はを使用しています。PostgreSQLこれは動作しますが、多少面倒である「

を新興」を含む文字列をtitleの検索

。好奇心の速記があった場合は?

Product.where("title @@ :q", q: "emerging") 

同様に扱いにくいが、もはやはRailsの中で私のために働くように見えません4:私はProduct.where(title: "*emerging*")

のようなものを探しています

Product.where("title ILIKE ?", "emerging") 
Product.where("title ilike :q", q: "emerging") 

推測

答えて

11

これはそれを行う必要があります。

word = 'emerging' 
Product.where('title ILIKE ?', "%#{word}%") 
  • ILIKEはと内部「という言葉を」containg場合
  • 「%」ワイルドカード検索の試合のタイトルを持つすべての製品を作るに検索敏感ではなくなります前と後のどちらかに(あるいはそうでない)ものを入れる。このような使用LIKE
+0

「i」の上「のように」私はこのための解決策を探してきたし、それが取ったすべてが追加されました。積極的な記録文書でさえも、嘘つきではない。 – nerdgasms

+0

@nerdgasms 'like 'や' ilike'関数は 'ActiveRecord'とは関係なく、使用しているDBシステムに関係しています。 – MrYoshiji

3

、:

Product.where('title LIKE ?', '%emerging%') 
関連する問題