为什么我在表单中发送文件时会收到ActionController :: UnknownFormat?

时间:2016-05-19 17:57:43

标签: ruby-on-rails ruby-on-rails-4

about.html.erb

form_tag({ :action => 'contact_send'}, :format => :js, :multipart => true, :remote => true, :id => "mensaje") do

notifications.rb

class Notifications < ApplicationMailer
   def contact_email(data)
    @data = data
    attachments["#{@data[:name].parameterize}.pdf"] = File.absolute_path(@data[:file].tempfile)
   ....

frontend_controller.rb

def contact_send
  ....
  Notifications::contact_email(@parameters).deliver_now

  respond_to  do |format|
    format.js
  end
end

我有一个 contact_send.js.erb ,当我不向表单添加文件时,它有效,但在 respond_to do | format | <中出错 发送文件时。

此外,邮件与letter_opener一起发送,因此没有问题。

2 个答案:

答案 0 :(得分:1)

这是我解决问题的方法

$("form#mensaje").submit(function(){

       var formData = new FormData($(this)[0]);

       $.ajax({
          url: '/contact/send',
          type: 'POST',
          data: formData,
          async: false,
          success: function (data) {

          },
          cache: false,
          contentType: false,
          processData: false
       });

       return false;
});

答案 1 :(得分:0)

远程为true,执行AJAX请求。在做AJAX时你不能做多部分。至少现在还没有 javascript(jQuery)上传插件