我想在我们的应用程序中显示最新的生产部署是什么时候进行的,作为显示持续改进等承诺的一种方式,等等。
在我的脑海中,我正在考虑从其中一个文件中获取 last_updated_at,但我想听听其他想法。
动态获取最新生产部署日期的最佳方法是什么?
谢谢,
乔什
我想在我们的应用程序中显示最新的生产部署是什么时候进行的,作为显示持续改进等承诺的一种方式,等等。
在我的脑海中,我正在考虑从其中一个文件中获取 last_updated_at,但我想听听其他想法。
谢谢,
乔什
感谢 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
每次访问时都运行,因此我们将不胜感激。
您可以使用 Capistrano 轻松完成。看看这个链接 我认为它完全符合您的要求部署日期