というエラーが出た。AとAなのになぜ…
原因はsort内で比較していた値にnilが入っていたからだったんだけど、特定のケースでエラーメッセージがわかりにくくなるようだった。
エラーじゃない
> nil <=> 1
=> nil
エラーだけどわかりやすい
> [1, nil].sort { |a, b| a <=> b }
ArgumentError: comparison of Integer with nil failed
なぜ…というエラーメッセージになる
> [{ id: 1 }, { id: nil }].sort { |a, b| a[:id] <=> b[:id] }
ArgumentError: comparison of Hash with Hash failed
なるほど。