我试图在我的用户模型中搜索以任何整数开头的所有用户,我有单个字母的代码并且它有效,但我无法使用外卡。现在我有这个代码:
在我看来:
<%= link_to '#', users_charlist_path(:char => '[0123456789]' %>
在我的控制器里我有:
def charlist
@a = User.where('goal like ?', "#{params[:char]}%").to_a
end
然而,'[0123456789]',似乎不起作用,因为即使我有名字以整数开头的用户,它也不会给我任何回报。我该怎么做?
答案 0 :(得分:0)
where
方法是ActiveRecord
的一部分,它将对象映射到数据库。那么如何使用正则表达式查询数据库取决于您在ruby上使用的数据库。您需要查找您使用的数据库的正则表达式函数。对于mysql,你可以在这里找到它们:
http://dev.mysql.com/doc/refman/5.1/de/regexp.html
另一种方法是选择所有对象并使用select
方法过滤符合您需求的结果。这种方法记录在这里:
http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-select
对于大量数据,我建议使用数据库,即使这意味着您的应用程序在不同数据库系统之间不是100%可移植的。