Ruby 2.1.0リファレンスマニュアル Enumerable#sort_byに Enumerable#sort と比較して sort_by が優れている点として、 比較条件が複雑な場合の速度が挙げられます。 sort_by を使わない以下の例では比較を行う度に downcase が実行されます。 従って downcase の実行速度が遅ければ sort の速度が致命的に低下します。 p ["BAR", "FOO", "bar", "foo"].sort {|a, b| a.downcase <=> b.downcase }