En rails3, hago los mismos alcances en el modelo. por ejemplo¿Puedo usar ámbitos ActiveRecord (alcance) comunes con módulo en Rails?
class Common < ActiveRecord::Base
scope :recent , order('created_at DESC')
scope :before_at , lambda{|at| where("created_at < ?" , at) }
scope :after_at , lambda{|at| where("created_at > ?" , at) }
end
Quiero dividir los ámbitos comunes en el módulo en lib. Así que intento como este.
module ScopeExtension
module Timestamps
def self.included(base)
base.send :extend, ClassMethods
end
module ClassMethods
scope :recent , lambda{order('created_at DESC')}
scope :before_at , lambda{|at| where("created_at < ?" , at) }
scope :after_at , lambda{|at| where("created_at > ?" , at) }
end
end
y escribo éste
class Common < ActiveRecord::Base
include ScopeExtension::Timestamps
end
Pero rieles muestran este error.
undefined method `scope' for ScopeExtension::Timestamps::ClassMethods:Module
(no me olvido biblioteca de carga automática)
¿Cómo puedo reutilizar fácilmente característica común en el alcance registro activo?
Supongo que este problema se relaciona con la secuencia de carga. Pero no tengo idea de resolver. Por favor insinúenme.