不允许的参数:Rails 中的图像

Unpermitted parameter: :images in Rails

我是 Rails 的新手,已经开始构建我的第一个 api;我正在尝试发送一个字符串数组作为我的 api 请求中的参数之一,如下所示:

{
  "name": "doot doot",
  "plans": "",
  "sketches": "",
  "images": ["foo.png", "bar.png"]
}

最初,images 是一个字符串,但我 运行 迁移以更改它以允许使用字符串数组,如下所示:

 change_column :projects, :images, "varchar[] USING (string_to_array(images, ','))"

在控制器中,我将 create 函数定义为:

def create
  project = Project.create(project_params)
  render json: project
end

def project_params
  params.require(:project).permit(:name, :plans, :sketches, :images)
end

但我仍然收到以下错误:

Unpermitted parameter: :images. Context: { controller: ProjectsController, action: create, request: #<ActionDispatch::Request:0x00007fb6f4e50e90>, params: {"name"=>"Simple Box", "plans"=>"", "sketches"=>"", "images"=>["foo.png", "bar.png"], "controller"=>"projects", "action"=>"create", "project"=>{"name"=>"Simple Box", "plans"=>"", "sketches"=>"", "images"=>["foo.png", "bar.png"]}} }

我咨询了这个问题但是解决方案没有用;有什么建议吗?

您需要指定images是一个数组。

  params.require(:project).permit(:name, :plans, :sketches, images: [])

请参阅 Rails 指南中的 Permitted Scalar Values