3

改善への継続的な取り組みなどを示す手段として、最新の本番デプロイがいつ行われたかをアプリに表示したいと思います.

頭のてっぺんから、ファイルの 1 つから last_updated_at を取得することを考えていますが、他の考えを聞きたいです。

最新の本番デプロイの日付を動的に取得する最良の方法は何ですか?


ありがとう、

ジョシュ

4

2 に答える 2

3

私を正しい方向に向けてくれたmpdに感謝します。

似たようなことをしたいと思っている人にとっては、これはおそらく改良とリファクタリングが可能な手っ取り早い汚い方法です。

このapp/controllers/application_controller.rbメソッドを private セクションに入れます。

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アクセスごとに実行することに熱心ではないので、提案をいただければ幸いです。

于 2010-04-25T18:38:57.623 に答える
2

あなたはCapistranoでそれをかなり簡単に行うことができます。このリンクを見てください私はそれがあなたが望むものを正確に実行すると思います展開日

于 2010-04-23T18:31:38.243 に答える