如何在不更改模型的情况下在迁移中批量分配受保护的属性

时间:2015-01-20 09:55:38

标签: ruby-on-rails-3.2 rails-migrations mass-assignment

我正在使用Rails 3.2

是否有特殊命令在迁移中分配受保护属性而不使用“attr_accessible”语句修改模型。

我的属性“pub_convention_id”必须在生产模式下保持受保护。

但是,我需要在迁移期间更新其值。 这就是为什么我要提出这个“着名的信息”:Can't mass-assign protected attributes: pub_convention_id

所以我问:是否有一个特殊的声明来临时停用质量分配保护(例如在块中)?

这是我的迁移文件的关注部分:

ProjEncaissementCofin.all.each do |proj_encaissement_cofin|
  proj_encaissement_cofin.update_attributes! :pub_convention_id => 1
end

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

proj_encaissement_cofin.pub_convention_id = 1
proj_encaissement_cofin.save!

proj_encaissement_cofin.assign_attributes({ pub_contention_id: 1 }, without_protection: true)
proj_encaissement_cofin.save!