UsersController指数:轨与jQuery令牌输入:第一个字符搜索忽略
@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开头的名称,因为它需要前面有另一个字符。您的查询是否与名称中最后一个字符的字母匹配? – 2012-08-13 15:18:54
有趣的想法!我正在使用Postgres。查询成功匹配名称中最后一个字符的字母。 – dmonopoly 2012-08-13 18:24:17
如果你能匹配名字的最后一个字母,那么我的建议很可能不是问题的原因。但是你可以尝试从where子句中删除第一个'%',看看会发生什么。 – 2012-08-13 19:41:22