rotaie named_scope come un'estensione AR :: Base
-
27-09-2019 - |
Domanda
class SomeModel < ActiveRecord::Base
named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
end
Voglio estendere la AR :: Classe base ad avere questo named_scope per tutti i modelli, come posso fare questo?
Soluzione
Creare un nuovo file di inizializzazione in config / inizializzatori e quindi riaprire classe Base
di ActiveRecord per aggiungere l'ambito denominato:
module ActiveRecord
class Base
named_scope :recent, lambda {
{ :conditions => ['created_at > ?', 1.week.ago] }
}
end
end
-Certo si ottiene un errore piuttosto brutto si dovrebbe tentare di utilizzare questo ambito denominato su un modello che non dispone di un attributo created_at
...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow