Rails 3 ActiveRecord método de encadenamiento, bajo el capó

Supongamos que crea una consulta que implica el encadenamiento de múltiples métodos, como

Post.where('id > 10').limit(20).order('id asc').except(:order)

Me pregunto qué pasa detrás de escena. Presumiblemente, cada parte de la cadena ayudará a construir un SQL SELECT y una vez que la cadena esté "completa" se ejecutará la declaración, se crearán los modelos, etc. ¿Cómo se "sabe" dónde está el final de la cadena? ¿Cada método devuelve una relación ActiveRecord :: Relation que crea un fragmento de SQL?

Respuestas a la pregunta(2)

Su respuesta a la pregunta