我在 Rails 控制台中,我想生成一个包含尾随空格的用户名列表。我在想语法看起来像这样,但它不起作用。任何比我更好的程序员都可以指出我做错了什么?
> User.name.where("% ")
我在 Rails 控制台中,我想生成一个包含尾随空格的用户名列表。我在想语法看起来像这样,但它不起作用。任何比我更好的程序员都可以指出我做错了什么?
> User.name.where("% ")
不知道您是否使用 MySQL,但一种方法是:
User.where("name LIKE '% '")
您可以根据您的数据库进行更改。不过,这有点慢。
一种方法是
Job.all.select{|j| j =~ /^\d+$/}
但它可能不如 MySQL 版本高效。
另一种可能性是使用命名范围来隐藏丑陋的 SQL:
named_scope :all_digits, lambda { |regex_str|
{ :condition => [" invoice_number REGEXP '?' " , regex_str] }
}
然后你有 Job.all_digits。
答案来自如何在 Rails 中使用 Active Record 时指定 Ruby 正则表达式?
你可以有
regex_str = "\w+\s+$"
谢谢
这是我的选择:
User.all.select { |c| c.name.end_with?(" ") }
这让我得到了我需要的清单。
它基于 Paritosh 的第一个答案。我让他成为规范的答案,因为我认为总的来说这是一个更好的资源。我的解决方案只对我有帮助,但他有很多有用的策略。