JA
以下のコードのように、文字列操作やArelのようなメソッドチェインではなく、Rubyの自然な式でクエリを書きたいと思いませんか?
Employee.where { :age >= 50 }.select { [avg(:vacation_hours), sum(:sick_leave_hours)] }
かつてRefinementsを使ってwhereを拡張するactiverecord-refinementsというgemがありましたが、Refinementsをブロックスコープで有効にする機能が処理系の実装上の都合でRuby 2.0から削除されてしまい、その夢は潰えました。 Ruby 4.1の新機能となる予定のProc#refinedを使って、activerecord-refinementsを現代に蘇らせてみましょう。