您好,我对 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;
如您所见,在关系上调用 lastDESC
两次 add ,但它应该只将其放在整个 之后ORDER BY FIELD
,而不是放在括号内。
有谁知道怎么做?
谢谢!