Rails3.2.2とMySQLを使用しています。私はユーザー名(たとえば、、、)でデータベーステーブルの列を次のように検索してJohn
いAnthony
ますMark
。
# User controller
User.search_by_name(params[:search]).order(:name)
# User model
def self.search_by_name(search)
if search
where('users.name LIKE ?', "%#{search}%")
else
scoped
end
end
ただし、名前は2つJohn Henry
以上Henry John
の文字列(たとえば、、、、、、、)で構成できるため、複数の名前が指定されている場合もユーザーを検索したいと思います。使ってみましたAnthony Maria
Maria Anthony
Mark Alfred
Alfred Mark
params[:search]
def self.search_by_name(search)
if search
search.split(' ').each do |string|
where('users.name LIKE ?', "%#{string}%")
end
else
scoped
end
end
しかし、次のエラーが発生します(たとえば、検索している場合John Henry
):
NoMethodError (undefined method `order' for ["John", "Henry"]:Array).
複数の名前を適切に検索するにはどうすればよいですか?