当搜索“john doe”时,我想返回具有以下名称的用户:
“john doe”、“John Doe”、“John Doe Jr.”、“Mr. John doe”……(如果可能的话,还有“John Sr. Doe”)
到目前为止,我所做的是在我的 User 模型上定义了一个命名范围:
scope :by_name, lambda { |name| where('UPPER(name) LIKE ?', name.upcase) }
然后在我的 /users/search 中:
name = params[:name]
@users = User.by_name(name).paginate(page: params[:page], per_page: 10)
但这不起作用。我正在返回具有完全相同名称且区分大小写的用户 - 因此,如果存在名为“john doe”的用户,则“john doe”返回。我需要做什么??
我正在使用带有 Rails 3.2.3 的 MySQL。
请帮忙!!