一体どういう意図でつくったのかわからないが見つけたのでメモがてら。打ち消しの記述なんて危険しか孕んでないから、おそらくコレは見かけたら駆除したほうがいい系のメソッドだとは思っている。
環境
rails (5.2.0)
例
例えば普通にorderすると以下のようにクエリが吐き出される
User.order(:id) # User Load (0.6ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC
複数指定すると以下のように重ねてORDER BYをかける
User.order(:id).order(:updated_at) # User Load (5.2ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC, `users`.`updated_at` ASC
ここをreorderに返ると以下のようになり打ち消される
User.order(:id).reorder(:updated_at) # User Load (2.7ms) SELECT `users`.* FROM `users` ORDER BY `users`.`updated_at` ASC
reorderは重ねて使っても最後しか採用されない
User.order(:id).reorder(:updated_at).reorder(:created_at) # User Load (0.7ms) SELECT `users`.* FROM `users` ORDER BY `users`.`created_at` ASC