Как извлечь общие named_scopes из моделей ActiveRecord - PullRequest
12 голосов
/ 09 октября 2008

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

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

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

Ответы [ 2 ]

21 голосов
/ 09 октября 2008

Используйте модуль. Примерно так должно работать:

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

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

0 голосов
/ 17 октября 2012
...