Pergunta

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

Eu quero estender a classe AR :: base para ter esse nome de todos os modelos, como posso fazer isso?

Foi útil?

Solução

Crie um novo arquivo inicializador em Config/Inicializadores e depois reabre o ActiveRecord's Base classe para adicionar o escopo nomeado:

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

- É claro que você recebe um erro bastante feio, caso tente usar esse escopo nomeado em um modelo que não tenha um created_at atributo...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top