Ruby on rails 在视图中显示Git修订哈希和时间戳?
假设我在上部署了一个Rails应用程序。如何在视图中显示这些信息Ruby on rails 在视图中显示Git修订哈希和时间戳?,ruby-on-rails,heroku,Ruby On Rails,Heroku,假设我在上部署了一个Rails应用程序。如何在视图中显示这些信息 上次修订的Git哈希 上次修订的时间戳 Heroku上安装了一个。因此,您可以使用它打开存储库 repo = Repo.new(Rails.root + '.git') last_commit = repo.commits.first p last_commit.id p last_commit.authored_date 我认为您需要在Rails应用程序中配置.gem“grit”,以便能够创建Repo对象 你可以在这里阅读有
- 上次修订的Git哈希
- 上次修订的时间戳
repo = Repo.new(Rails.root + '.git')
last_commit = repo.commits.first
p last_commit.id
p last_commit.authored_date
我认为您需要在Rails应用程序中配置.gem“grit”,以便能够创建Repo对象
你可以在这里阅读有关grit的内容,这是因为当你的应用程序部署到dyno网格上服务请求时,它会被编译成一个“slug”,用于快速部署,而这个slug不再带有git repo。Heroku使用commit hash
ENV['commit\u hash']
设置一个环境变量
至于时间戳,如果您在那里托管代码,您可以使用散列来点击。看起来可以帮助您完成这项任务,或者您可以自己完成。另一种方法是使用rake任务进行部署,该任务从本地repo获取所需的版本信息,并更新Heroku端的环境变量。然后,您可以使用标记、提交哈希或其他任何东西,而不必依赖Heroku端的行为 例如,如果要使用最新标记,请在rake任务中:
def app_version
%x[git describe --tags --abbrev=0].strip
end
然后在任务主体中:
run "git push blah:blah blah"
run "heroku config:add APP_VERSION=#{app_version}"
我希望能够直接从Heroku上的git上获得这些信息,而不是间接地偷偷地把它们带进来,但我从来没有想过如何做到这一点 谢谢你的提示。不幸的是,它在heroku控制台中对我不起作用(在应用程序本身中会有所不同吗?)。在Repo.new之后,我得到了“Grit::NoSuchPathError:”有什么想法吗?试图解决类似的问题,我可以确认这不符合描述。这不起作用,因为.git目录在Heroku上不可用,至少在当前的Cedar堆栈中不可用。这似乎是对答案的第一条评论(Rich Apodac)的回应(达米恩·马修著)。