0

RailsでLIKE文を使用すると少し問題が発生しました。次の文が機能することがわかっています。

Brand.find(:all, :joins=>[:cars], :conditions=>["brandname LIKE ?","%ford%"])

しかし、それは私が次のようなことをすることができる方法です:

Brand.find(:all, :joins=>[:cars], :conditions=>["brandname LIKE '%ford%'"])

それは、単一の文字列ですべての条件を返す関数が既にあるためですが、文字列での検索をサポートする必要があり、実際に機能させる方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

私はあなたが話していることを理解しているかどうか完全には確信が持てません。条件に変数を渡そうとしていますか?

このクエリを少しだけ書き直します。

Brand.all.joins(:cars).where("brandname LIKE ?", "%#{some_variable}%")

もちろん、多くのレコードを取得する場合、すべてを選択するとパフォーマンスが低下する可能性があるため、それを制限するか、何らかの方法で結果をページ分割することを検討することをお勧めします。

ガイドをお勧めします。この場合、配列を使用すると便利です

Brand.all.joins(:cars).where("brandname LIKE ?", "%#{params[:brand_search]}%")
于 2012-07-27T17:00:43.613 に答える