我正在使用rails 2和resque。我想在 resque 作业完成执行时呈现部分内容。我知道我们可以在 lib 文件中使用render
, redirect
etc 方法。
对这个问题有什么建议吗?
我正在使用rails 2和resque。我想在 resque 作业完成执行时呈现部分内容。我知道我们可以在 lib 文件中使用render
, redirect
etc 方法。
对这个问题有什么建议吗?
承认您想要的是从您的 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/
在过去的 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})