こんにちは、Rails 3.2 と順序付けに問題があります。
コレクションをフィールドで並べ替えたいとき、呼び出し.last
ActiveRecord
がおかしいとき...
>> User.order("FIELD(id, '1')")
User Load (0.4ms) SELECT `users`.* FROM `users` ORDER BY FIELD(id, '1')
=> []
>> User.order("FIELD(id, '1')").first
User Load (0.4ms) SELECT `users`.* FROM `users` ORDER BY FIELD(id, '1') LIMIT 1
=> nil
>> User.order("FIELD(id, '1')").last
User Load (0.3ms) SELECT `users`.* FROM `users` ORDER BY FIELD(id DESC, '1') DESC LIMIT 1
Mysql2::Error: You have an error in your SQL syntax;
ご覧のとおり、リレーション add で最後に 2 回呼び出していますが、括弧内ではなくDESC
、全体の後にのみ配置する必要があります。ORDER BY FIELD
誰もそれを行う方法を知っていますか?
ありがとう!