从rake任务中渲染视图

时间:2015-06-09 07:05:03

标签: ruby-on-rails ruby rake partial-views rake-task

我正在尝试从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"

0 个答案:

没有答案