需要在完成resque作业时部分渲染

时间:2012-08-01 11:56:33

标签: ruby-on-rails render

我正在使用rails 2和resque。我想在resque作业完成执行时渲染部分。 我知道我们可以在lib文件中使用renderredirect等方法。

对此问题的任何建议?

2 个答案:

答案 0 :(得分:0)

承认你想要的是从resque作业中获取部分或erb文件的渲染输出,你可以这样做:

require 'erb'

weekday = Time.now.strftime('%A')
simple_template = "Today is <%= weekday %>."

# you can also read from a file like so ERB.new(File.read(<file name here>))
renderer = ERB.new(simple_template)
puts output = renderer.result()

您可以在此处阅读更多内容http://www.stuartellis.eu/articles/erb/

答案 1 :(得分:0)

过去3天我一直在寻找解决方案..

终于在这里找到了..

http://www.rigelgroupllc.com/blog/2011/09/22/render-rails3-views-outside-of-your-controllers/

这也适用于rails 4!

av = ActionView::Base.new()
av.view_paths = ActionController::Base.view_paths
av.extend ApplicationHelper #or any other helpers your template may need
body = av.render(:template => "/orders/receipt.html.erb",:locals => {:order => order})

但问题是询问Rails 2解决方案,上面的链接提供了此代码。

body = ActionView::Base.new(Rails::Configuration.new.view_path).render(:file => "/orders/receipt.html.erb",:layout => false,:locals=>{:order=>order})