目前我正在使用rails 4开发一个项目,在example.com/username有一个用户页面,但只有在正确大小写下才能找到该记录,如何在active record rails中执行不区分大小写的搜索。
请查看我的代码:
@user = User.find_by_username(params[:username].downcase)
目前我正在使用rails 4开发一个项目,在example.com/username有一个用户页面,但只有在正确大小写下才能找到该记录,如何在active record rails中执行不区分大小写的搜索。
请查看我的代码:
@user = User.find_by_username(params[:username].downcase)
您将需要使用类似于where("username ILIKE ?")
的东西。但是,ILIKE
或类似语法取决于您的数据库。
def self.search(query)
where("lower(name) LIKE lower(?)", "%#{query}%")
end
你可以使用 Arel 表。
# Suppose the target username in DB is 'FooBAR'.
t = User.arel_table
@user = User.find_by(t[:username].matches 'foobar')
这将查找用户名类似于'FooBar'、'foobar'、'FOOBAR'等等的用户。
更多细节请参见: https://github.com/rails/arel。
where("lower(name) = lower(?)", "#{query}")
。 - lgants