我目前正在将应用程序从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'的情况下解决这个问题?
答案 0 :(得分:1)
每次使用attr_accessible或attr_protected时,都为该模型启用了质量分配保护。如果您在评论中提到纯粹供内部使用,那么在不使用attr_accessible的情况下解决此问题的唯一方法是从模型或使用accepts_nested_attributes_for触摸的任何模型中删除attr_protected。