【发布时间】:2012-08-14 19:01:29
【问题描述】:
我目前正在将应用程序从 Rails 2.3.8 升级到 Rails 3.2.7,并且在批量赋值方面遇到了一些问题。
当我尝试保存任何模型时,我收到以下错误:
Can't mass-assign protected attributes: a,b,c,d
我注意到 Rails 已将白名单属性的默认设置设置为:
config.active_record.whitelist_attributes = false
所以我将其更改为 true,但错误不断出现。我们将 attr_protected 用于一些事情,但它似乎忽略了这些并保护了一切。我猜这是由于模型使用了“accepts_nested_attributes_for”,但这些都是必要的。
有没有其他方法可以在不使用 'attr_accessible' 的情况下解决这个问题?
【问题讨论】:
-
attr_accessible可以实现模型属性的大规模分配。你有什么理由不想使用它吗? -
这是一个相当大的应用程序,因此更新所有内容需要一段时间,而且该网站仅供公司内部使用,因此安全性并不是什么大问题。
标签: ruby-on-rails ruby-on-rails-3.2 mass-assignment