【问题标题】:Rails: Showing the latest deploy date in web appRails:在 Web 应用程序中显示最新的部署日期
【发布时间】:2026-02-25 00:10:01
【问题描述】:

我想在我们的应用程序中显示最新的生产部署是什么时候进行的,以表明对改进等的持续承诺。

我突然想到从其中一个文件中获取 last_updated_at,但我想听听其他想法。

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


谢谢,

乔什

【问题讨论】:

    标签: ruby-on-rails date deployment updatedate


    【解决方案1】:

    感谢 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 中运行它,因此我们将不胜感激。

    【讨论】:

    • 建议不要为每个请求运行它:您可以在“config/initializers”中的文件中设置一个常量APPLASTUPADTEDAD。
    • @TheMahrvin 感谢您的提醒 - 我不久前就这样做了 - 我会用更好的方法更新这个答案。
    【解决方案2】:

    您可以使用 Capistrano 轻松完成。看看这个链接我认为它完全符合你的要求Deployment date

    【讨论】:

    • 感谢链接人。我将在今天晚些时候发布一个更详细的解决方案。
    • np,我期待看到你的结果。
    最近更新 更多