【发布时间】:2014-10-21 05:47:11
【问题描述】:
因此,作为 Ruby on Rails 应用程序中搜索功能的一部分,我让用户可以按名字和姓氏进行搜索。但是,当我输入他们的全名时,它不会呈现任何结果。因此,如果用户名为 John Smith,我可以输入“John”或“Smith”,它会调出他,但如果我输入“John Smith”,它就无法识别。
我知道这是因为在我的搜索代码中我只启用了名字和姓氏,但没有启用用户的全名。连接名字和姓氏以解决此问题的正确方法是什么?
这是当前代码:
users = User.find_by_sql(['select *
from users
where first_name ilike ?
or last_name ilike ?
order by last_name limit ?', q, q, 100])
【问题讨论】:
-
如果他们搜索“Smith John”,您希望发生什么?
-
没想到...不过可能希望它显示 John Smith
-
我可能会定义一个新方法,例如def full_name ([first_name, last_name] - ['']).compact.join(' ') end
-
@Suomi 似乎不起作用。那会按如下方式使用吗?
where first_name ilike ? or last_name ilike ? or full_name ilike ?
标签: ruby-on-rails ruby search concatenation