Допустим, вы строите запрос, включающий цепочку из нескольких методов, например
Post.where('id > 10').limit(20).order('id asc').except(:order)
Мне интересно, что происходит за сценой? Предположительно, каждая часть цепочки поможет построить SQL SELECT, и после того, как цепочка «завершена», выполняется оператор, создаются модели и т. Д. Как он «узнает», где находится конец цепочки? Каждый метод возвращает ActiveRecord :: Relation, который создает фрагмент SQL?