Настройки конфигурации Rails 3 для attr_accessible / protected - PullRequest
3 голосов
/ 13 марта 2012

Я потратил довольно много времени, пытаясь решить проблему с виртуальными атрибутами в моей модели.Оказалось, я просто забыл добавить его в attr_accesible в моей модели.Конечно, я должен был поймать это раньше или лучше начать все начинание, добавив его в attr_accessible.

Чтобы это не повторилось, есть ли параметр конфигурации, который я могу пометить, чтобы вызвать исключениена разработке, если я пытаюсь массово назначить что-то и проверить это, когда это защищено / недоступно?Я знаю, что могу использовать set config.active_record.whitelist_attributes = true, чтобы требовать белый список для всех, но мой вопрос больше касается отдельных атрибутов.

Например, строка выше не предупреждает меня, если у меня есть модель с attr_accessible: name thenпозже добавьте: псевдоним (виртуальный или нет) и попробуйте массово назначить его, проверяя наличие => true.Я хочу, чтобы он предупредил меня, что я пытался проверить защищенный атрибут с помощью массового назначения.

1 Ответ

6 голосов
/ 13 марта 2012

Rails 3.2 имеет опцию конфигурации для поднятия ActiveModel::MassAssignmentSecurity::Error в этом случае

config.active_record.mass_assignment_sanitizer = :strict

См. Примечания к выпуску Rails 3.2 и коммит в рельсах

...