Spec-Zone.ru › Ruby on Rails 7.2

класс ActiveRecord::UnknownAttributeReference

Родитель:
ActiveRecord::ActiveRecordError

UnknownAttributeReference возникает, когда в метод запроса передаётся неизвестное и потенциально небезопасное значение. Например, передача значения, не являющегося именем столбца, в метод сортировки отношения может вызвать это исключение.

При работе с этим исключением необходимо проявлять осторожность, чтобы избежать уязвимостей 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API