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?

È stato utile?

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
scroll top