Ruby on rails 为什么在使用受保护的属性时会出现禁止属性错误

Ruby on rails 为什么在使用受保护的属性时会出现禁止属性错误,ruby-on-rails,ruby-on-rails-4,strong-parameters,Ruby On Rails,Ruby On Rails 4,Strong Parameters,我们刚刚从4.0.1升级到rails 4.1.13。我们在实现强大的参数方面步履维艰。因此,我们仍然在使用protected\u属性gem,因此我们可以使用旧的行为 现在,我们得到了一个ActiveModel::ForbiddenAttributeError。我不明白为什么,因为我们使用的是protected_attributesgem..您基本上可以使用以下代码片段来标记除模型的id属性之外的用于批量分配的安全属性 attr_protected :id 请注意,这样做会使除模型id之外的所有

我们刚刚从4.0.1升级到rails 4.1.13。我们在实现强大的参数方面步履维艰。因此,我们仍然在使用
protected\u属性
gem,因此我们可以使用旧的行为


现在,我们得到了一个
ActiveModel::ForbiddenAttributeError
。我不明白为什么,因为我们使用的是
protected_attributes
gem..

您基本上可以使用以下代码片段来标记除模型的id属性之外的用于批量分配的安全属性

attr_protected :id
请注意,这样做会使除模型id之外的所有属性都可以安全地进行体量指定。
如果模型的大多数属性都可以批量分配,我认为使用
attr\u protected
而不是使用
attr\u accessible
更有意义,因为它可以在不编写更多代码的情况下完成相同的工作。

protected\u attributes
gem,据我记忆所及,要求您为将在应用程序中批量分配的任何属性添加可访问的属性。如果您尝试分配一个未标记为可访问的属性,则会出现此错误。如果您有强参数,这是完全冗余的,因为它将要求您允许每个属性两次,一次在控制器中,一次在模型中。这确实解决了它。但是它在4.0.1环境下运行是多么奇怪啊……我相信Rails4.01刚刚发布了一个警告,让开发人员有一点时间来实现强参数。