Rails: отображение последней даты развертывания в веб-приложении
Я хотел бы показать в нашем приложении, когда было выполнено последнее развертывание производства, как средство показать постоянную приверженность улучшению, и т. Д., И т. Д.
Вдобавок ко всему, я думаю о том, чтобы получить last_updated_at из одного из файлов, но я хотел бы услышать другие мысли.
Каков наилучший способ получить дату динамического развертывания последней версии?
Спасибо,
мистифицировать
2 ответа
Спасибо 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. Посмотрите на эту ссылку, я думаю, что она делает именно то, что вы хотите Дата развертывания