Carrierwave文件上传中未经许可的参数

时间:2014-09-20 21:18:25

标签: ruby-on-rails-4

我为Ad模型设置了Rails 4 + CarrierWave +嵌套表单Image(挂载PictureUploaderpicture

当我尝试添加或修改Ad时,我有未允许的参数picture

Parameters: {"utf8"=>"✓", 
"ad"=>{
   "title"=>"plot", 
   "images_attributes"=>
      { "0" => 
         { 
            "picture"=>[#<ActionDispatch::Http::UploadedFile:0x007fbea1ddedb8 @tempfile=#<Tempfile:/var/folders/t8/fm77jh7j6232v5km2llkgq1r0000gn/T/RackMultipart20140921-33609-54hs6k>, @original_filename="New-york-rental-apartment-1-.gif", @content_type="image/gif", @headers="Content-Disposition: form-data; name=\"ad[images_attributes][0][picture][]\"; filename=\"New-york-rental-apartment-1-.gif\"\r\nContent-Type: image/gif\r\n">],
            "_destroy"=>"false"
         }
      }
   }
}

Unpermitted parameters: parent_id
Unpermitted parameters: parent_id
Unpermitted parameters: picture

我允许这个参数跟随。 (根据this Rails Guide,我的代码应该正常工作)

params.require(:ad).permit(:picture, :title, :images_attributes => [:picture, :id, :_destroy])

我只能从carrierwave获得后备图片,现在我一无所知。

编辑1:

在github上发现this issue,讨论Carrierwave没有使用嵌套表单。

还找到A complete sample of how to perform nested polymorphic uploads in rails using carrierwave。它在Rails 3中,我还没有测试过它。

1 个答案:

答案 0 :(得分:0)

我在教程之后跟踪教程并搞砸了我的代码。 A complete sample of how to perform nested polymorphic uploads in rails using carrierwave有效。

我正在使用nested_form并配置file来接受多个文件。我更改了我的每个文件输入以仅接受一个,现在它正在工作。