私のアプリケーションでは、first_name
,middle_name
およびlast_name
という3つの列を持つ顧客モデルがあります。複数の列が検索で結合されます
class Customer < ActiveRecord::Base
belongs_to :user
def self.search(search, user)
if search
.where('first_name LIKE ? OR middle_name LIKE ? OR last_name LIKE ?', "%#{search}%", "%#{search}%", "%#{search}%", "%#{search}%")
.where(user: user)
else
where(user: user)
end
end
end
この検索機能に関する問題は、それが一度に3つの列のいずれかで検索を可能とすることである:私は、検索を実行し、モデル内のメソッドを持っています。
たとえば、お客様のfirst_nameは「foo」、middle_nameは「bar」、last_nameは「baz」です。 "foo"、 "bar"、または "baz"を検索すると結果が返されますが、 "foo bar"または "bar baz"では結果が返されません。 3つの列全体で検索できるようにするにはどうすればよいですか?
ように試みることができる私は悩み作業このコードを取得することだ。これは、特定のデータベースを必要としていますか?私はsqliteのを使用しています – James
申し訳ありません;一重引用符を二重引用符に変更するのを忘れました – illusionist