Rubyのmaxとmax_byの違い

使い方が異なる。
max メソッドは比較演算子 <=> の結果、つまり戻り値は -1, 0, 1 のいずれかを返す必要がある。 max_by は比較したい値を返すだけでよい。

gist.github.com

ちなみに maxmax_byEnumerable で定義されているメソッドなので Hash に対しても使えるが、上記のように配列展開が必要になって面倒くさいことになる。