Создание запроса 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 или обходной путь для этой проблемы?