link_to按字母顺序搜索

时间:2012-02-29 21:43:38

标签: ruby-on-rails

我在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等等?

1 个答案:

答案 0 :(得分:1)

您需要使用like运算符进行搜索:

when true then User.where("username LIKE ?", "#{params[:username]}%")

使用LIKE运算符并使用%搜索包含以params[:username]开头的用户名的记录。