我的 rails 应用程序每天一次获取一堆 xml 提要,将它们加载到数据库中,然后将它们汇总显示。我想如果我只是将页面输出为静态文件并让它们直接由前端服务器(在我的例子中是 nginx)提供服务,我可以节省服务器内存。我在 IRC 房间询问,并被告知不要使用 rails 并使用 rake 任务创建文件。但是,我想知道最简单的方法是什么。布局,资产文件和内容显然在rails中的不同位置,所以我想我需要结合布局和内容,然后插入css/javascript。
欢迎任何想法/想法。
[解决了]
我最终使用了来自 rake 任务的 render_to_string中的示例,并进行了一些调整以在我的 rake 任务中获取以下代码:
views_path = Rails.root.to_s + "/app/views"
av = ActionView::Base.new(views_path)
av.class_eval do
include ApplicationHelper
end
products = Product.all
a = av.render(:template => "products/show", :layout => "layouts/application", :locals => { :@products => products } )
然后,这会渲染模板和布局,并允许在模板内使用 @products 实例变量,就像使用控制器一样。
然后我只需要将渲染的输出写入文件。