2016-04-06 4 views
1

私はこれに似たオブジェクトを見つけるために検索を実行しているよ。このような検索を使用してActiveRecordのあいまい検索

Object(id: 1, example: "abc")

を:

params[:search] = "abcdef" 
Object.where("example LIKE ?", "#{params[:search]%") 

だけにできています私の検索文字が私のオブジェクトより少ない文字であれば上記の例を使用してください。

+0

は、私は次のように 'LIKE'の構文はなると思い大文字小文字を区別しない検索にilikeを使用する場合があります' LIKE '%?%' '('% 'はワイルドカードです)。 –

+0

これは意味をなさない。誰かが "シソーラス"を検索したときに、 "example:"が付いたオブジェクトが表示されますか?これは「好き」の仕組みではなく、そのように動作させることはできません。 – meagar

+0

ええ、私はレガシーコードで作業しています。必要な団体はありません。この検索を使用して、不一致なデータを持つオブジェクト間の関連付けを少しずつ変更しようとします。これに対する解決策はありますか? –

答えて

0

は、私はそれがあるべきだと思う

params[:search] = "abcdef" 
Object.where("example LIKE ?", "%#{params[:search]}%") 

また、(あなたはpostgresのを使用している場合)

+0

SQLインジェクションのリスクがあるため、レールガイドはこれを再度警告します。 http://edgeguides.rubyonrails.org/active_record_querying.html#pure-string-conditions – Arel

関連する問題