私はRails 3でそうした検索をしようとしています。私はそうのような属性を持つようになどのデータベースオブジェクトを持っている:Rails 3配列を使って文字列を検索する
@food.fruit = "Apples, Pears, Plums"
と私はそうのように、チェックボックスからのparamsを使用して検索を持っている:上記の私の@food
オブジェクトは「りんごを持っているので
params[:search] = ["Apples", "Oranges", "Bananas", "Grapefruit"]
この検索が成功するためには検索配列に「Apple」があります。しかし、私はこの作業を適切に行うのに問題があります。
私の最初に考えたのは
@results = Food.where("fruit LIKE ?", "%params[:search]%")
または
@results = Food.where("fruit IN ?", params[:search])
ような何かをすることでした。しかしparams[:search]
はONLY @food.fruit
要素なし他人が含まれている場合、最初にのみ機能します。 2つ目は全く動作しません。
マイ土壇場のリゾートでは、
@results = Array.new
params[:search].each do |search|
@results << Food.where("fruit LIKE ?", search)
end
ような何かを行うことですが、私はしていない場合、私はむしろそれをしないと思います。誰でも助言がありますか?
あなたの答えをありがとう。これは私には完全な意味があり、完全に動作するはずです... params [:search]に1つの項目がある場合は、それが実行されます。しかし、私は2つ以上の配列を作るとき、それは私に "間違った数のバインド変数(3の1)"というエラーを投げます。なぜこれが起こっているのか、これは実際には意味をなさない。 – goddamnyouryan
@ Ryan:バインド変数配列の配列を解除するためのスプラットを追加することができます(私の固定答えのように)。 –
ああ完璧...ありがとう!私はあなたと同じように私のSQLと輝くことができることを望む!もっと知るためのヒント? – goddamnyouryan