ruby-on-rails – 将呈现的视图作为电子邮件rails发送
发布时间:2020-12-17 02:14:58 所属栏目:百科 来源:网络整理
导读:我想发送通常作为电子邮件正文的视图. 这是最简单的方法吗? 例如:我有pages / reports.html.erb,如果您访问该路径作为电子邮件正文,我想发送您看到的页面. 有没有办法获取渲染的html并将其分配给电子邮件的正文变量? 另外,我想将PDF版本作为附件包含在内.
我想发送通常作为电子邮件正文的视图.
这是最简单的方法吗? 例如:我有pages / reports.html.erb,如果您访问该路径作为电子邮件正文,我想发送您看到的页面. 有没有办法获取渲染的html并将其分配给电子邮件的正文变量? 另外,我想将PDF版本作为附件包含在内. (我正在使用wicked_pdf) def reports @email = params[:email] #something here? respond_to do |format| format.html format.pdf do render :pdf => "usage_report" end end end 注意:如果有帮助的话,我正在使用带有mongoid 2的rails 3.1用于DB和heroku上的sendgrid 编辑:我最终做了什么: 在这里替换#something?有: email_obj = {} email_obj.to = params[:email] email_obj.from = 'reports@company.com' email_obj.subject = 'Report' email_obj.body = render_to_string(:template => "pages/reports",:layout => false) ReportsMailer.deliver_report(email_obj).deliver 并在邮件程序类mailers / reports_mailer.rb中 class ReportsMailer < ActionMailer::Base default from: "from@example.com" def deliver_report(email) @email = email mail( :to => @email.to,:subject => @email.subject,:from => @email.from) end end 并在reports_mailer / deliver_report.html.erb中 <%= render :inline => @email.body %> 解决方法
rails邮件程序视图通过邮件程序的名称存储在视图中的子文件夹中,就像控制器视图一样.很难说这是否完全可以让你不知道该方法的视图/控制器是什么样的,但你可以做的是为该页面渲染并将其转换为
partial,然后你可以在控制器视图和
mailer view如下:
给出部分:_my_partial.html.erb 在意见内: render "my_partial" 使用partial,你甚至可以通过以下方式传递视图渲染所需的任何变量: render "my_partial",:variable => variable 更新: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |