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