0

我正在使用rails 2和resque。我想在 resque 作业完成执行时呈现部分内容。我知道我们可以在 lib 文件中使用render, redirectetc 方法。

对这个问题有什么建议吗?

4

2 回答 2

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/

于 2012-08-01T14:22:42.893 回答
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})
于 2014-11-19T01:43:40.100 回答