正在获取 ActiveModel::ForbiddenAttributesError,即使参数是允许的。

Getting ActiveModel::ForbiddenAttributesError, even though param is permitted.

尝试在 rails4 中提交 ActiveModel 表单,但出现此错误;

ActiveModel::ForbiddenAttributesError

这是通过表单提交数据的活动管理页面:

ActiveAdmin.register Network do
  permit_params :name

这些是通过的参数:

Parameters: {"utf8"=>"✓", "network"=>{"name"=>"Acme, Inc."}, "commit"=>"Save Network"}

name 是唯一通过的参数,并且是允许的参数。那么,为什么会给我这个错误?

所以,我发现了导致错误的罪魁祸首。

我有这些行:

network = Network.new(params[:network])
network.admin ||= User.new(params[:network].andand[:admin])  

但在将 params 更改为 permitted_params 后,如下所示

network = Network.new(permitted_params[:network])
network.admin ||= User.new(permitted_params[:network].andand[:admin])

一切正常。 谢谢大家