我正在使用AngularJS和jQuery-file-uploader插件.我已经配置了rails来包装我的参数
I'm working with AngularJS and the jQuery-file-uploader plugin. I've configured rails to wrap my parameters with
ActiveSupport.on_load(:action_controller) do wrap_parameters format: [:json] end这一切都可以正常工作,除非我尝试上传文件.我使用的上载器插件与正常使用略有不同,但它仍可以正常工作.而是让插件在添加文件时上传文件,我创建一个新记录,然后上传文件.该请求已正确触发,但是文件的参数没有被rails包裹.在我的日志中,我得到了
This is working fine for everything except when I try and upload my files. I'm using the uploader plugin slightly differently to normal but it should still be working. Rather the letting the plugin upload files when they're added, I'm creating a new record, and THEN uploading the files. The request is firing correctly, however the parameter(s) for the file(s) is/aren't being wrapped by rails. In my logs I am getting
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, ...]同样通过此控制器进行的记录创建工作完美,并且参数按预期进行了包装,但是不适用于此记录.我在做错什么吗?
The record creation which also goes through this controller works perfect, and the parameters are being wrapped as expected, however it won't work for this. Am I doing something wrong?
推荐答案这是因为文件上传请求具有multipart/form-data格式.
That's because the file upload request has the multipart/form-data format.
要也以这种格式激活自动包装,您可以添加format选项:
To activate the autowrappring too in this format, you can add the format option :
class MeetingsController < ApplicationController wrap_parameters :meeting, include: [..., :icon, ...], format: [:json, :multipart_form] ... end更多推荐
Rails wrap
发布评论