不能允许参数?

时间:2013-03-13 02:48:23

标签: ruby-on-rails ruby-on-rails-4 strong-parameters

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

我有以下内容:

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

在我的控制器中创建和更新动作我正在使用上述参数调用的质量赋值...

@credential.update_attributes(credential_params)

但我仍然得到Unpermitted parameters: agent_ids

如果我将其更改为params.required(:credential).permit!(即允许所有)当然可以。

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

2 个答案:

答案 0 :(得分:5)

知道了。

数组不是supported types

之一
  

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

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

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

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

答案 1 :(得分:5)

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