एक तरीका है
Job.all.select{|j| j =~ /^\d+$/}
लेकिन यह MySQL संस्करण जितना कुशल नहीं होगा।
बदसूरत एसक्यूएल को छिपाने के लिए नामित दायरे का उपयोग करने की एक और संभावना है:
named_scope :all_digits, lambda { |regex_str|
{ :condition => [" invoice_number REGEXP '?' " , regex_str] }
}
फिर आपके पास Job.all_digits
. है ।
ध्यान दें कि दूसरे उदाहरण में, आप डेटाबेस के लिए एक क्वेरी असेंबल कर रहे हैं, इसलिए regex_str
रूबी रेगेक्स ऑब्जेक्ट के बजाय एक MySQL रेगेक्स स्ट्रिंग होना चाहिए, जिसमें थोड़ा अलग सिंटैक्स होता है।