我目前正在将一个应用程序从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‘来解决这个问题?
发布于 2012-08-15 06:32:57
无论何时使用attr_accessible或attr_protected,您都已为该模型启用了批量分配保护。如果正如你在评论中提到的那样,网站纯粹是供内部使用的,那么解决这个问题的唯一方法就是不使用attr_accessible,而是从模型中删除attr_protected,或者使用accepts_nested_attributes_for从模型中删除它涉及的任何模型。
https://stackoverflow.com/questions/11959025
复制相似问题