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

AR :: Baseクラスを拡張して、すべてのモデルにこのnamed_scopeを設定したいのですが、どうすればよいですか?

4

1 に答える 1

3

config / initializersに新しい初期化ファイルを作成してから、 ActiveRecordのクラスを再度開いBaseて、名前付きスコープを追加します。

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

-もちろん、属性を持たないモデルでこの名前付きスコープを使用しようとすると、かなり醜いエラーが発生しcreated_atます...

于 2010-05-18T14:39:55.547 に答える