RailsでSQLを生成するメソッドの呼び出し順でSQLが変化するのか分からなかったのでコンソールで試して調べて見ました。
結論
SQLを生成するメソッドを呼ぶ順番は生成するSQLに影響しない。 下の2つのSQLは同一になる。
Book.all.order(:id) Book.order(:id).all
$ rails c > sql_1 = Book.all.order(:id).to_sql => "SELECT \"books\".* FROM \"books\" ORDER BY \"books\".\"id\" ASC" > sql_2 = Book.order(:id).all.to_sql => "SELECT \"books\".* FROM \"books\" ORDER BY \"books\".\"id\" ASC" > sql_1 == sql_2 => true
まとめ
メソッドの呼び出し順で変化しないことが分かったので良かったです。 Railsはまだまだ入り口にも立てていませんが、一つづつ理解を深めていこうと思います。