【发布时间】:2012-07-31 13:01:35
【问题描述】:
UsersController 的索引:
@users = current_user.other_users.where("first_name like ?", "%#{params[:q]}%")
1) 搜索在文本字段中工作正常,但未检测到第一个字符。
示例:如果我用“J”搜索“John”,我不会得到任何结果,但如果我搜索“o”,我会得到应该得到的“John”。
2) 我想知道您如何在上面为 last_name... 添加额外的搜索条件? 我想像
.where("first_name like ? or last_name like ?", "%#{params[:q]}%")
可以,但是不行……
帮助表示赞赏!
【问题讨论】:
-
您使用的是什么数据库?也许(虽然我不知道为什么会发生这种情况,但它违背了我能找到的所有文档)您搜索中的
%字符与零长度不匹配。这意味着"%J%"不会匹配以 J 开头的名称,因为它需要在它前面有另一个字符。您的查询是否匹配名称中最后一个字符的字母? -
有趣的想法!我正在使用 Postgres。查询成功匹配名称中最后一个字符的字母。
-
如果你能匹配一个名字的最后一个字母,那么我的建议可能不是问题的原因。但是您可以尝试从 where 子句中删除第一个
%,看看会发生什么。
标签: jquery ruby-on-rails forms jquery-tokeninput