Una forma es
Job.all.select{|j| j =~ /^\d+$/}
pero no será tan eficiente como la versión de MySQL.
Otra posibilidad es usar un alcance con nombre para ocultar el feo SQL:
named_scope :all_digits, lambda { |regex_str|
{ :condition => [" invoice_number REGEXP '?' " , regex_str] }
}
Entonces tienes Job.all_digits
.
Tenga en cuenta que en el segundo ejemplo, está ensamblando una consulta para la base de datos, por lo que regex_str
debe ser una cadena MySQL regex en lugar de un objeto Ruby Regex, que tiene una sintaxis ligeramente diferente.