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一起发送,因此没有问题。
答案 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)上传插件。