Spec-Zone.ru › Ruby on Rails 6.0

класс ActiveRecord::UnknownAttributeReference

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

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

При работе с этой ошибкой следует проявлять осторожность, чтобы избежать уязвимостей SQL-инъекций при передаче значений, предоставленных пользователем, методам запроса. Известно безопасные значения можно передавать методам запроса, обернув их в Arel.sql.

Например, при allow_unsafe_raw_sql, установленном в :disabled, следующий код вызовет эту ошибку:

Post.order("length(title)").first

Желаемый результат можно получить, обернув известную безопасную строку в Arel.sql:

Post.order(Arel.sql("length(title)")).first

Вновь, такое решение не следует использовать при передаче значений, предоставленных пользователем, таких как параметры запроса или атрибуты модели методам запроса.

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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