Jednym ze sposobów jest
Job.all.select{|j| j =~ /^\d+$/}
ale nie będzie tak wydajna jak wersja MySQL.
Inną możliwością jest użycie nazwanego zakresu do ukrycia brzydkiego kodu SQL:
named_scope :all_digits, lambda { |regex_str|
{ :condition => [" invoice_number REGEXP '?' " , regex_str] }
}
Następnie masz Job.all_digits
.
Zauważ, że w drugim przykładzie tworzysz zapytanie dla bazy danych, więc regex_str
musi być ciągiem znaków MySQL zamiast obiektu Ruby Regex, który ma nieco inną składnię.