Rails wrap_parameter无法正常工作

我正在使用AngularJS和jQuery-file-uploader插件。 我已经配置了rails来包装我的参数

ActiveSupport.on_load(:action_controller) do wrap_parameters format: [:json] end 

除了我尝试上传文件时,这对所有内容都很好。 我使用上传器插件与正常情况略有不同,但它应该仍然有效。 而是让插件在添加时上传文件,我正在创建一个新记录,然后上传文件。 请求正确触发,但文件的参数未被rails包装。 在我的日志中我得到了

 Processing by MeetingsController#update as JSON Parameters: {"icon"=>#<ActionDispatch::Http::UploadedFile:0x007fde79178b58 @original_filename="006.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"icon\"; filename=\"006.png\"\r\nContent-Type: image/png\r\n", @tempfile=#>, "id"=>"35"} 

我期待看到参数

 { :meeting => { :icon => ... }} 

在我的MeetingsController我有

 wrap_parameters :meeting, include: [..., :icon, ...] 

同样通过该控制器创建的记录工作完美,参数按预期进行包装,但不适用于此。 难道我做错了什么?

那是因为文件上传请求具有multipart / form-data格式。

要以此格式激活自动包装,您可以添加格式选项:

 class MeetingsController < ApplicationController wrap_parameters :meeting, include: [..., :icon, ...], format: [:json, :multipart_form] ... end