読みづらいと感じる例えばこういうコード。Post.joins(:comments).order(Comment.arel_table[:created_at].desc)発行されるSQLはこんな感じ。DESCこちらの方が個人的には読みやすい。desc')問題もあるテーブル名を変えてしまったとき仮にテーブル名がかわったら後者の場合はエラーになる。DESC前者はモデルの方でテーブル名を変更すれば動作する。}endPost.joins(:comments).merge(Comment.recent)これだとCommentのcreated_atが解決できなくてコケる。09:16:45.106691')正しくはこう。09:19:17.406299')僕個人の結論Model.arel_tableはできる限り隠したい(読みづらいから)。mergeを使いたいケースではArelを使っておく。その変わりmergeが必要になるまでは無理にArelを使わない。10.days.ago)で書いておく。merged使いたい時になったらArelの方で書き直す。テーブル名の変更のリスクは気にしない。そもそもあまりテーブル変更しないし...。あるDBの上にRailsアプリケーションを構築する場合はDBリファクタリングのことを考えてArel使いまくった方がいいのかもしれない。