sql >> Databasteknik >  >> RDS >> Mysql

Hur anger man Ruby regex när man använder Active Record i Rails?

Ett sätt är

Job.all.select{|j| j =~ /^\d+$/}

men det kommer inte att vara lika effektivt som MySQL-versionen.

En annan möjlighet är att använda ett namngivet scope för att dölja den fula SQL:

  named_scope :all_digits, lambda { |regex_str|
    { :condition => [" invoice_number REGEXP '?' " , regex_str] }
  }

Då har du Job.all_digits .

Observera att i det andra exemplet sammanställer du en fråga för databasen, så regex_str måste vara en MySQL regex-sträng istället för ett Ruby Regex-objekt, som har en något annorlunda syntax.



  1. Vad är MariaDB Enterprise Cluster?

  2. Fyll i land och stad automatiskt från postnummer och tvärtom

  3. Hur SQLite Min() fungerar

  4. Vilken metod är bättre för att validera användaruppgifter?