rails3では、私はモデルで同じスコープを作っています。例えばRailsで共通のActiveRecordスコープ(スコープ)をモジュールで使用できますか?
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
私は共通スコープをlibのモジュールに分割したいと思っています。だから私はこのようにしてみる。
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
は、と私はこの1つ
class Common < ActiveRecord::Base
include ScopeExtension::Timestamps
end
書くしかし、Railsは、このエラーが表示されます。
undefined method `scope' for ScopeExtension::Timestamps::ClassMethods:Module
(私はオートローディングライブラリを忘れていなかった)
どのように私は簡単にアクティブなレコードに共通スコープ機能を再利用することができますか?
この問題は、ロードシーケンスに関係すると思います。しかし、私は解決する考えはありません。 お願いします。