我正在尝试从rake任务发送邮件。 我已经设法发送电子邮件,但问题是我发送的文件。 我想发送一个视图,每次发送邮件时都会修改。
我已经安装了gem render_anywhere来渲染rake任务中的视图,但我一直有这个错误:
NoMethodError:字符串的未定义方法`formats':0x007ff1a1068b88>
这是我应该完成工作的rake任务的一部分:
要求'render_anywhere' 包括RenderAnywhere 需要Rails.root.join('app','helpers','reports_helper')
命名空间:报告 desc'将视图写入文件的示例' 任务:example => :环境做
class RakeActionView < ActionView::Base
include Rails.application.routes.url_helpers
include ::ApplicationHelper
def default_url_options
{host: 'localhost:3000'}
end
def protect_against_forgery?
false
end
end
controller = ActionController::Base.new
controller.class_eval do
include Rails.application.routes.url_helpers
include ::ApplicationHelper
end
controller.request = ActionDispatch::TestRequest.new
view = RakeActionView.new(Rails.root.join('app', 'views'), {}, controller)
view.assign( :user => Report.first )
html = view.render(:template =>"#{Rails.root}/app/views/reports/organize.html.erb", layout: false)
pdf = PDFKit.new(html)
pdf.stylesheets << "#{Rails.root}/app/assets/stylesheets/print/reports-print.css.scss"