我在rails中有一个link_to方法,用于字母表的每个字母(早期 几天后,将把它放在循环中)。我对控制台也一样 另一个页面,那个工作正常,但我的页面上的那个 字母没有。
我的模型中有以下内容:
def index
user_relation = case params[:username].present?
when true then User.where(:username => params[:username])
else User
end
@users = user_relation.paginate :page=>params[:page], :order => 'created_at desc', :per_page => 10
end
这是我索引中的一个例子:
<%= link_to 'A', users_path(:username => 'A'), {:style=>'color:#FFFFFF', :class => "tabel-3"}%>
现在,如果我点击A,它就不会返回任何结果,尽管有 许多用户使用字母A但是如果我要举例的话 括号名称AdrianShaw(我的数据库中的一个用户)并单击 它会返回那个确切的用户。它似乎正在做的是搜索 但只有完全匹配的结果,任何少于完整的单词和 它没有回来。
我将如何做到这一点,以便让所有用户获得第一个用户 字母A等等?
答案 0 :(得分:1)
您需要使用like运算符进行搜索:
when true then User.where("username LIKE ?", "#{params[:username]}%")
使用LIKE
运算符并使用%
搜索包含以params[:username]
开头的用户名的记录。