Question

class SomeModel < ActiveRecord::Base
  named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
end

Je veux étendre l'AR :: La classe de base d'avoir cette named_scope pour tous les modèles, comment je peux le faire?

Était-ce utile?

La solution

Créer un nouveau fichier initialiseur config / initializers , puis rouvrir la classe Base de ActiveRecord pour ajouter le champ nommé:

module ActiveRecord
  class Base
    named_scope :recent, lambda {
      { :conditions => ['created_at > ?', 1.week.ago] }
    } 
  end
end

-Bien vous obtenez une erreur assez laid si vous tentez d'utiliser ce champ le nom figure sur un modèle qui ne possède pas d'attribut created_at ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top