Rails,按整数列出

时间:2014-01-15 10:50:51

标签: ruby-on-rails

现在我有一个链接路由到一个视图,该视图按给定的字母列出我的所有用户,如果我点击'A'它会显示我的所有用户名字以字母a开头的用户。如何为以整数开头的用户执行此操作?我想我必须改变我的params值,但我不知道该怎么做。这是我的代码:

<%= link_to 'A', users_charlist_path(:char => "A") %>

现在我有这个,但它不起作用:

<%= link_to '#', users_charlist_path(:char => /[0-9]+(\%7C[0-9]+)*/) %>

这是我的控制者:

def charlist
  @a = User.all(:conditions => "goal like '#{params[:char]}%'")
end

2 个答案:

答案 0 :(得分:0)

我认为一切都必须奏效。只有几分钟。

  1. SELECT * FROM users WHERE email LIKE '7%' ...工作,所以我认为链接生成有问题。
  2. 从不传递此"#{params}"之类的参数。因为它不安全。使用:conditions => ['goal like ?", "#{params[:char]}%"]
  3. 在控制台中尝试使用pry进行调试。

答案 1 :(得分:0)

您可以使用[0123456789]作为任何数据库(source)都可以使用的通配符。

<%= link_to '#', users_charlist_path(:char => '[0123456789]' %>

在控制器中,正如Igor所解释的那样,不要在字符串中直接包含params,这是一个安全问题

def charlist
  @a = User.where('goal like ?', "#{params[:char]}%").to_a
end