Rails 3 > 在rake任务中渲染视图

10
我被一项需要准备Mailchimp通讯的rake任务困扰着。通过查找rails 2.x的相关信息,我现在有了以下代码:
desc "Sends newsletter to Mailchimp list"
  task :send_newsletter => :environment do
    begin
      # get render helpers
      av = ActionView::Base.new(Rails::Application::Configuration.new(Rails.root).view_path)
      av.class_eval do
        include ApplicationHelper
      end

      things = Stuff.do.things

      h = Hominid::Base.new({:api_key => "xxx"})
      h.create_campaign(
        {
          :list_id => "xxx",
          :subject => "Hey...",
          :from_email => "xxx",
          :from_name => "xxx",
          :to_email => "",
          :auto_footer => true,
          :generate_text => true
        },
        {
          :html => av.render(:template => "stuff/newsletter", :locals => {:things => things}, :layout => false)
        },
        "regular")
    rescue Exception => e
      STDERR.puts ">>> #{e.to_yaml}"
    end

我得到了这个错误消息:"undefined method `virtual_path' for false:FalseClass"

我的第一次尝试是使用render_to_string,但是我无法访问它,因为它在控制器中而不是视图中。

任何帮助都将不胜感激 :)

1个回答

12

:layout => nil ?


好的...谢谢,星期一的错误! - jbfeldis
谢谢 - 这非常有帮助。 - Dom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接