2011-03-30 106 views
1

我有一个RoR应用程序,用于跟踪数据库中值的状态,并以erb生成的图表,图形和表格的形式显示此信息的可视化文件。这非常方便,我可以通过在浏览器中打开时保存页面来保存数据库状态的快照。然而,我想要的是我的应用程序每晚自动为我节省这笔费用。我认为这是可能的,但迄今为止我没有太多运气。任何有关这一点的建议都会非常有帮助。使用Ruby on Rails从erb文件自动生成html文件

+0

是从单个HTML动态生成的这些图表和图形吗?如果它们是单独的文件,那么解决方案将变得更加复杂,因为您将不得不保存更多的文件。 – gertas 2011-03-30 20:04:42

+0

是的,我的图形是使用谷歌的图表工具构建的。我只是在erb文件中包含url,并使用从数据库中提取的信息填写重要的位。 – keybored 2011-03-31 16:15:22

回答

0

您可以使用每当https://github.com/javan/whenever

自述:

当是一个Ruby的宝石,提供 清晰的语法写作和部署 cron作业。

还有延迟工作https://github.com/tobi/delayed_job

自述:

的delayed_job(或DJ)封装在 背景的异步 执行长任务的 常见的模式。

+0

最终以Heroku cron插件预期的方式结束了直写cron作业。 (http://devcenter.heroku.com/articles/cron)看着我的帖子,我现在看到,我没有提到我正在部署到Heroku,哎呀。每当我们的内部测试很好地工作。 – keybored 2011-04-11 15:18:31

1

你总是可以使用render_to_string方法来渲染你的erb。例如,你需要渲染show.html.erb作秀行动statistics控制器:

my_page = render_to_string :controller => 'statistics', :action => 'show', :layout => 'application' 

,但首先要定义你使用int放映视图所有它的变量。

@data = Data.last_data 
@users = User.active 
enter code here 
my_page = render_to_string :controller => 'statistics', :action => 'show', :layout => 'application' 
snapshot = Snapshot.new :page => my_page 
snapshot.save 

API:http://apidock.com/rails/ActionController/Base/render_to_string

+0

这不起作用了。 render_to_string在ActionController :: Base中定义。由于类/模块定义在Rails控制器范围之外,因此该功能不可用。 – 2011-09-26 05:50:13