Ruby on Rails chamada implementação de escopo

Do livro Desenvolvimento Ágil na Web com Rails

class Order < ActiveRecord::Base
   named_scope :last_n_days, lambda { |days| {:conditions =>
      ['updated < ?' , days] } }

   named_scope :checks, :conditions => {:pay_type => :check}
end

A declaração

orders = Orders.checks.last_n_days(7)

resultará em apenas uma consulta no banco de dados.

Como os trilhos implementam isso? Eu sou novo no Ruby e estou pensando se há uma construção especial que permita que isso aconteça.

Para poder encadear métodos como esse, as funções geradas pelo named_scope devem estar retornando elas mesmas ou um objeto que possa ter um escopo adicional. Mas como Ruby sabe que é a última chamada de função e que deve consultar o banco de dados agora?

Eu pergunto isso porque a instrução acima realmente consulta o banco de dados e não apenas retorna uma instrução SQL resultante do encadeamento.

questionAnswers(3)

yourAnswerToTheQuestion