обновление логических атрибутов в postgresql из rails - PullRequest
1 голос
/ 03 августа 2010

У меня есть простое утверждение, подобное этому:

@employee.update_attributes(:subscribed=>false)

, но это не обновляет поле boolean столбца subscribed. Выдает предупреждение:

WARNING: Can't mass-assign these protected attributes: subscribed

Ответы [ 2 ]

3 голосов
/ 03 августа 2010

Я бы предложил использовать # update_attribute , а не #update_attributes.#update_attribute (единственное число) принимает два параметра: имя атрибута и значение.Это предназначено для переключения логических значений или обновления отдельных значений.Семантика #update_attribute также означает, что обратные вызовы не будут запускаться.

Из вашего кода это простое изменение:

@employee.update_attribute(:subscribed, false)

Теперь по реальной причине, почему ваш код не работаетпотому что у вас есть место, где вы используете # attr_accessible или #attr_protected в вашей модели Employee.Использование #attr_accessible помогает предотвратить атаки с помощью инъекций, позволяя назначать только определенные поля из # attribute = (что в конечном итоге и вызывает #update_attributes).Предупреждение исходит из #attributes =.

1 голос
/ 03 августа 2010

необходимо attr_accessible :subscribed> _ <</p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...