【发布时间】:2026-02-25 00:10:01
【问题描述】:
我想在我们的应用程序中显示最新的生产部署是什么时候进行的,以表明对改进等的持续承诺。
我突然想到从其中一个文件中获取 last_updated_at,但我想听听其他想法。
动态获取最新生产部署日期的最佳方法是什么?
谢谢,
乔什
【问题讨论】:
标签: ruby-on-rails date deployment updatedate
我想在我们的应用程序中显示最新的生产部署是什么时候进行的,以表明对改进等的持续承诺。
我突然想到从其中一个文件中获取 last_updated_at,但我想听听其他想法。
谢谢,
乔什
【问题讨论】:
标签: ruby-on-rails date deployment updatedate
感谢 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
显然,用您自己的时区替换时区(或者您可以为个别用户的时区做一些花哨的事情)。
为了一直运行,我使用: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 轻松完成。看看这个链接我认为它完全符合你的要求Deployment date
【讨论】: