【问题标题】:Rails wrap_parameter not working as expectedRails wrap_parameter 未按预期工作
【发布时间】:2013-05-05 02:44:09
【问题描述】:

我正在使用 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=#<File:/var/folders/_v/qsm9g7nn00s0jmfkynmvwp140000gn/T/RackMultipart20130505-15753-17ig2it>>, "id"=>"35"}

我期待看到的参数是

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

在我的MeetingsController 我有

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

同样通过这个控制器的记录创建工作完美,参数按预期包装,但它不会为此工作。我是不是做错了什么?

【问题讨论】:

    标签: ruby-on-rails jquery-file-upload


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      相关资源
      最近更新 更多