3

我想在我们的应用程序中显示最新的生产部署是什么时候进行的,作为显示持续改进等承诺的一种方式,等等。

在我的脑海中,我正在考虑从其中一个文件中获取 last_updated_at,但我想听听其他想法。

动态获取最新生产部署日期的最佳方法是什么?


谢谢,

乔什

4

2 回答 2

3

感谢 mpd 为我指明了正确的方向。

对于那些有兴趣做类似事情的人来说,这是一种快速而肮脏的方法,可能可以被改进和重构。

app/controllers/application_controller.rb将此方法放在私有部分中:

private 

def app_last_updated_at
  if File.exist?(RAILS_ROOT + "/REVISION")
    timezone = "Mountain Time (US & Canada)"
    @app_last_updated_at = File.atime(RAILS_ROOT + "/REVISION").in_time_zone( timezone )
  else 
    @app_last_updated_at = "Not Long Ago."
  end
end

显然,用您自己的时区替换时区(或者您可以为单个用户时区做一些花哨的事情)。

为了一直运行,我使用 a:before_filter并将其放在您的application_controller.rb.

before_filter :app_last_updated_at

然后要实际显示该日期的最后更新,您只需将其或类似的内容放入布局或部分或其他内容中:

<%= 
unless @app_last_updated_at.nil? 
  if @app_last_updated_at.is_a? Time 
@app_last_updated_at.to_s(:long)
  else
@app_last_updated_at 
  end
end
%>

希望这对其他人有所帮助。我并不热衷于让它在ApplicationController每次访问时都运行,因此我们将不胜感激。

于 2010-04-25T18:38:57.623 回答
2

您可以使用 Capistrano 轻松完成。看看这个链接 我认为它完全符合您的要求部署日期

于 2010-04-23T18:31:38.243 回答