代码之家  ›  专栏  ›  技术社区  ›  Andrew

不能允许参数?

  •  5
  • Andrew  · 技术社区  · 12 年前

    这对我来说很奇怪,所以我很好奇是否有其他人遇到过这种情况:

    我得到了以下内容:

    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 回复  |  直到 12 年前
        1
  •  6
  •   jvnill    12 年前

    尝试

    params.require(:credential).permit(:name, { :agent_ids => [] })
    
        2
  •  5
  •   Daniel Rikowski    12 年前

    知道了。

    数组不是 supported types :

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

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

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

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