Rails nomeados_scope como uma extensão para AR :: Base
-
27-09-2019 - |
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?
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