4

这对我来说很奇怪,所以我很好奇是否有其他人遇到过这个问题:

我有以下内容:

def credential_params
  params.required(:credential).permit(:name,:agent_ids)
end

在我的控制器创建和更新操作中,我正在使用带有上述参数调用的质量分配...

@credential.update_attributes(credential_params)

但我仍然得到Unpermitted parameters: agent_ids

如果我将其更改为params.required(:credential).permit!(即全部允许),它当然可以工作。

我觉得我必须在这里忽略一些明显的问题......有人知道它可能是什么吗?

4

2 回答 2

5

尝试

params.require(:credential).permit(:name, { :agent_ids => [] })
于 2013-03-13T02:53:44.613 回答
4

知道了。

数组不是支持的类型之一:

允许的标量类型是 String、Symbol、NilClass、Numeric、TrueClass、FalseClass、Date、Time、DateTime、StringIO、IO、ActionDispatch::Http::UploadedFile 和 Rack::Test::UploadedFile。

因此解决方案是指定一个数组,如下所示:

params.require(:credential).permit(:name, :agent_ids => [])

希望其他人觉得这很有用。

于 2013-03-13T02:53:37.223 回答