1

我在 Rails 控制台中,我想生成一个包含尾随空格的用户名列表。我在想语法看起来像这样,但它不起作用。任何比我更好的程序员都可以指出我做错了什么?

> User.name.where("% ")
4

3 回答 3

3

不知道您是否使用 MySQL,但一种方法是:

User.where("name LIKE '% '")

您可以根据您的数据库进行更改。不过,这有点慢。

于 2012-09-18T22:25:23.763 回答
1

一种方法是

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+$"

谢谢

于 2012-09-18T20:26:31.757 回答
0

这是我的选择:

User.all.select { |c| c.name.end_with?(" ") }

这让我得到了我需要的清单。

它基于 Paritosh 的第一个答案。我让他成为规范的答案,因为我认为总的来说这是一个更好的资源。我的解决方案只对我有帮助,但他有很多有用的策略。

于 2012-09-18T21:08:27.150 回答