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. Посмотрите на эту ссылку, я думаю, что она делает именно то, что вы хотите Дата развертывания

Другие вопросы по тегам