现在我有一个链接路由到一个视图,该视图按给定的字母列出我的所有用户,如果我点击'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
答案 0 :(得分:0)
我认为一切都必须奏效。只有几分钟。
SELECT * FROM users WHERE email LIKE '7%' ...
工作,所以我认为链接生成有问题。"#{params}"
之类的参数。因为它不安全。使用:conditions => ['goal like ?", "#{params[:char]}%"]
答案 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