В одну сторону
Job.all.select{|j| j =~ /^\d+$/}
но это будет не так эффективно, как в версии MySQL.
Другая возможность - использовать именованную область видимости, чтобы скрыть уродливый SQL:
named_scope :all_digits, lambda { |regex_str|
{ :condition => [" invoice_number REGEXP '?' " , regex_str] }
}
Тогда у вас есть Job.all_digits
.
Обратите внимание, что во втором примере вы собираете запрос к базе данных, поэтому regex_str
должна быть строкой регулярного выражения MySQL вместо объекта Ruby Regex, который имеет немного другой синтаксис.