2010-09-20 55 views
9

我被一個需要爲Mailchimp準備通訊的耙子任務卡住了。Rails 3>在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 

我得到這個錯誤信息: 「未定義的方法`virtual_path」假:FalseClass」

我的第一次嘗試是與render_to_string,但我不能訪問,因爲它是在控制器而不是視圖。

任何幫助,將不勝感激:)

回答

12

:layout => nil

+0

好的......謝謝,星期一錯誤! – jbfeldis 2010-09-20 15:15:45

+0

謝謝 - 這是最有幫助的。 – Jurgen 2012-03-30 14:35:14