Rails: отображение последней даты развертывания в веб-приложении - PullRequest
3 голосов
/ 23 апреля 2010

Я хотел бы показать в нашем приложении, когда было выполнено последнее развертывание производства, как средство показать постоянную приверженность улучшению и т. Д. И т. Д.

Вдоль головы я подумываю получить last_updated_at из одного из файлов, но мне хотелось бы услышать другие мысли.

Каков наилучший способ динамического получения даты последнего производственного развертывания?


Спасибо,

Josh

Ответы [ 2 ]

3 голосов
/ 25 апреля 2010

Спасибо 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 для каждого доступа, поэтому предложения будут оценены.

2 голосов
/ 23 апреля 2010

Вы можете сделать это довольно легко с Capistrano. Посмотрите на эту ссылку, я думаю, что она делает именно то, что вы хотите Дата развертывания

...