Подтвердить что ты не робот

Как извлечь общие named_scopes из моделей ActiveRecord

У меня есть named_scope, который повторно используется в нескольких моделях ActiveRecord. Например:

  named_scope :limit, lambda {|limit| {:limit => limit}}    

Какова наилучшая практика для извлечения этого кода для общего доступа к моделям. Можно ли извлечь его в модуль или лучше открыть класс ActiveRecord:: Base?

4b9b3361

Ответ 1

Используйте модуль. Что-то вроде этого должно работать:

module CommonScopes
  def self.included(base)
    base.class_eval do
      named_scope :limit, lambda {|limit| {:limit => limit}}
    end
  end
end

Затем просто включите CommonScopes, и вам будет хорошо идти.