不能允许参数?

And*_*rew 4 ruby-on-rails strong-parameters ruby-on-rails-4

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

我有以下内容:

def credential_params
  params.required(:credential).permit(:name,:agent_ids)
end
Run Code Online (Sandbox Code Playgroud)

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

@credential.update_attributes(credential_params)
Run Code Online (Sandbox Code Playgroud)

但我还是得到了 Unpermitted parameters: agent_ids

如果我改变它params.required(:credential).permit!(即允许所有)当然它是有效的.

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

And*_*rew 5

得到它了.

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

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

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

params.require(:credential).permit(:name, :agent_ids => [])
Run Code Online (Sandbox Code Playgroud)

希望别人觉得这很有用.


jvn*_*ill 5

尝试

params.require(:credential).permit(:name, { :agent_ids => [] })
Run Code Online (Sandbox Code Playgroud)