класс ActiveRecord::UnknownAttributeReference
UnknownAttributeReference генерируется, когда в метод запроса передаётся неизвестное и потенциально небезопасное значение. Например, передача значения, не являющегося именем столбца, в метод order отношения может вызвать эту ошибку.
При работе с этой ошибкой следует проявлять осторожность, чтобы избежать уязвимостей SQL-инъекции при передаче значений, предоставленных пользователем, в методы запросов. Известно безопасные значения можно передать в методы запросов, обернув их в Arel.sql.
Например, следующий код вызовет эту ошибку:
Post.order("REPLACE(title, 'misc', 'zzzz') asc").pluck(:id)
Желаемый результат можно получить, обернув известную безопасную строку в Arel.sql:
Post.order(Arel.sql("REPLACE(title, 'misc', 'zzzz') asc")).pluck(:id)
Однако такой обходной путь не следует использовать при передаче значений, предоставленных пользователем, таких как параметры запроса или атрибуты модели в методы запросов.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.