Enquanto refatorava um Objeto de Consulta (explicado na excelente postagem do blog @codeclimate 7 Padrões para Refatorar Modelos Fat ActiveRecord ), me deparei com um problema estranho em que meu modelo com escopo estava carregando ansiosamente.
Por exemplo
irb(main):029:0> User.scoped
User Load (248.5ms) SELECT "users".* FROM "users"
.... SQLWTF!!1!
Depois de refletir um pouco sobre isso e ler a documentação , percebi que o problema era que o console em que estava testando deseja inspecionar a última instrução e, portanto, estava executando o escopo.
Você pode contornar isso colocando outra coisa no final da instrução para o console avaliar:
irb(main):030:0> u = User.scoped; nil
=> nil
irb(main):031:0> u.count
(78.1ms) SELECT COUNT(*) FROM "users"
=> 909164
ESTRONDO!