Skip to content
This repository has been archived by the owner on Aug 17, 2017. It is now read-only.

Correct readme migration path instructions #232

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Correct readme migration path instructions #232

wants to merge 1 commit into from

Conversation

dcki
Copy link

@dcki dcki commented Nov 16, 2015

Without the extra steps added to the readme in this commit, the migration to Rails 4 instructions will cause ActiveModel::MassAssignmentSecurity::Error to be raised on any model that has had necessary attr_accessible declarations removed (as the instructions direct), because config.active_record.whitelist_attributes = true in config/application.rb, which is the default setting, requires all models to whitelist mass-assigned attributes.

The extra steps added to the readme in this commit make it possible to update and deploy one model at a time, which is valuable.

I'm not very familiar with this, but it appears that attr_protected works because it signals that the model secures mass assignment with a blacklist, and then an empty black list makes all attributes accessible and leaves the responsibility of mass assignment protection to strong_parameters.

More info:

http://stackoverflow.com/a/14252971/724752

#226

An alternative to this commit might be to just put an attr_protected with no arguments in ActiveModel::ForbiddenAttributesProtection, but I'm not ready to investigate that now.

Without the extra steps added to the readme in this commit, the migration to Rails 4 instructions will cause ActiveModel::MassAssignmentSecurity::Error to be raised on any model that has had necessary attr_accessible declarations removed (as the instructions direct), because `config.active_record.whitelist_attributes = true` in config/application.rb, which is the default setting, requires all models to whitelist mass-assigned attributes.

The extra steps added to the readme in this commit make it possible to update and deploy one model at a time, which is valuable.

I'm not very familiar with this, but it appears that attr_protected works because it signals that the model secures mass assignment with a blacklist, and then an empty black list makes all attributes accessible and leaves the responsibility of mass assignment protection to strong_parameters.

More info:

http://stackoverflow.com/a/14252971/724752

#226

An alternative to this commit might be to just put an `attr_protected` with no arguments in ActiveModel::ForbiddenAttributesProtection, but I'm not ready to investigate that now.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant