rails3からARELが導入され、ActiveRecordのクエリインターフェースはとても洗練されたものになりました。 scopeを組み合わせることで複雑なクエリをとてもシンプルかつ自然な形で表現できるようになっています。実際のところ、ARELの表現力はよく現れるSQLのほとんどは表現可能だと思います。 たとえば User.activated.without_email.includes(:emails, :tels).order("name").limit(10) のようにしてメールアドレスを登録していないユーザを名前順に10件取り出す、ということが実現できます。ARELがすごいのはこのようなシンプルな例ではなく、もっと多数のテーブルが絡んだ複雑なクエリであっても、scope を適切に定義することですっきりとしたクエリが記述できることにあります。 しかしそんなARにも弱点はあります。パ