2

我目前正在将应用程序从 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”的情况下解决这个问题?

4

1 回答 1

1

每当您使用 attr_accessible 或 attr_protected 时,您就为该模型启用了批量分配保护。如果您在评论中提到该网站纯粹供内部使用,那么在不使用 attr_accessible 的情况下解决此问题的唯一方法是从模型或使用 accept_nested_attributes_for 触及的任何模型中删除 attr_protected。

于 2012-08-14T22:32:56.533 回答