Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

ウェブサービスを作っています。

order メソッドをチェインしたときの挙動が Rails3 と Rails4.0.0 で逆

ActiveRecord の AR::Relation#order メソッドですが、チェインした場合の挙動が Rails4.0.0 で変更されていました。
追記(2013/11/7 18:00):
Rails4.0.1 で、Rails3 の挙動に戻りましたので、この記事は Rails4.0.0 に対してのみ有用です。ご注意ください。
Ruby on Rails 4.0.1リリース!大量のバグ修正、3系からの移行も少し簡単になりました | TechRacho


Rails3

User.order(:a).order(:b)  # => ORDER BY a, b


Rails4.0.0

User.order(:a).order(:b)  # => ORDER BY b, a


後から設定した値が、優先されるようになったんですね。