改善への継続的な取り組みなどを示す手段として、最新の本番デプロイがいつ行われたかをアプリに表示したいと思います.
頭のてっぺんから、ファイルの 1 つから last_updated_at を取得することを考えていますが、他の考えを聞きたいです。
最新の本番デプロイの日付を動的に取得する最良の方法は何ですか?
ありがとう、
ジョシュ
改善への継続的な取り組みなどを示す手段として、最新の本番デプロイがいつ行われたかをアプリに表示したいと思います.
頭のてっぺんから、ファイルの 1 つから last_updated_at を取得することを考えていますが、他の考えを聞きたいです。
ありがとう、
ジョシュ
私を正しい方向に向けてくれた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
アクセスごとに実行することに熱心ではないので、提案をいただければ幸いです。
あなたはCapistranoでそれをかなり簡単に行うことができます。このリンクを見てください私はそれがあなたが望むものを正確に実行すると思います展開日