1

Rails アプリで、特定の条件に基づいてUsersモデルを検索しようとしています。

特に、文字列である場所フィールドがあり、検索文字列が含まれているかどうかに基づいてこのフィールドを検索したいと考えています。たとえば、場所が「オックスフォード」のユーザーを検索すると、「オックスフォード、イングランド」など、そのバリエーションを持つユーザーも返されるようにします。

これに対する答えをウェブで検索したところ、アクティブレコード検索で LIKE キーワードを使用する必要があるようですが、私にとっては、これは完全一致のみを返しています。

これは、検索メソッドからの私のコードのスニペットです

conditions_array = []
conditions_array << [ 'lower(location) LIKE ?', options[:location].downcase ] if !options[:location].empty?
conditions = build_search_conditions(conditions_array)
results = User.where(conditions)

私は何か間違ったことをしていますか?それとも、LIKE を使用して目的を達成するための正しいアプローチではありませんか?

4

1 に答える 1

2

あなたがする必要がありますlike '%oxford%'

%ゼロ文字でも、任意の数の文字に一致します

conditions_array << [ 'lower(location) LIKE ?', "%#{options[:location].downcase}%" ] if !options[:location].empty?
于 2013-03-13T12:13:29.107 に答える