ActiveRecord - порядок по полю выдает StatementInvalid при последнем вызове - PullRequest
2 голосов
/ 25 октября 2011

Создание запроса activerecord и вызов last, который имеет заказ с использованием order by field MYSQL, вызывает исключение StatementInvalid.

Например:

ruby-1.9.2-p180 > User.order('field(name, \'joe\')').last

ActiveRecord::StatementInvalid: Mysql2::Error: You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right 
syntax to use near 'DESC, "joe") DESC LIMIT 1' at line 1:
SELECT `users`.* FROM `users` ORDER BY field(name DESC, "joe") DESC LIMIT 1

Проблема заключается в том, что activerecordдобавление DESC к name внутри оператора field, а также за его пределами.

Есть ли лучший способ упорядочения по определенным значениям столбца с помощью activerecord или обходной путь для этой проблемы?

1 Ответ

0 голосов
/ 25 октября 2011

Что не так с

User.where("name LIKE ?", \'joe\').last!

Если вы просто хотите последнюю запись, зачем беспокоиться о order?

...