【发布时间】:2011-05-22 00:34:00
【问题描述】:
我正在编写一个 Rails 3 应用程序,并且我有一个用户数据库表。用户有 first_name 和 last_name 列。在列出用户的页面上,我想要一个允许用户过滤列表的文本搜索框。他们需要能够在搜索框中键入以下内容之一: - 用户的名字 - 用户的姓氏 - 用户的全名(例如“Smith, John”)
我不知道如何编写将返回这些结果的 where 子句。我得到的最接近的是下面,但是连接字段部分不起作用。
where('(first_name LIKE :search) or (last_name LIKE :search) or ("#{last_name}, #{first_name}" LIKE :search)', :search => "%#{search}%")
我也很想知道是否有更好的方法来处理我的 OR 语句,因为这个子句变得相当笨重。
感谢您的帮助!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 where-clause