どんなメソッドなの?
ブロックの評価結果を <=> メソッドで比較することで、self を昇順にソートします。ソートされた配列を新たに生成して返します。
なので、ArrayやHashで使って場合に、中身をソートして配列を返すってメソッドですね。
具体例
# サンプルハッシュ
hash = { 3 => "apple", 2 => "banana", 5 => "cherry", 1 => "date" }
# キーでソート
sorted_by_key = hash.sort_by { |key, value| key }
puts "Sorted by key (as array):"
p sorted_by_key
# 値でソート
sorted_by_value = hash.sort_by { |key, value| value }
puts "\nSorted by value (as array):"
p sorted_by_value
こんな感じで使用できます。
ただ、Hashで使った場合は、配列になってしまうのでHashのまま扱いたい人は、.to_hメソッドを使って
sorted_by_key_hash = hash.sort_by { |key, value| key }.to_h
としてあげれば、Hashのままソートできます。