如何在Capistrano和Rails之间发送变量?

时间:2011-01-25 18:56:49

标签: ruby-on-rails ruby deployment capistrano

我有一个使用Capistrano部署的Rails应用程序,在我们的Acceptance环境中,我想设置页面标题以包含当前部署的分支。

分支是通过Capistrano进行部署的,我想以某种方式将这些信息从Cap迁移到Rails。

显然我可以让Cap将分支名称写入文件并在Rails中读回来,但我希望有更好的解决方案。

我尝试了几个设置default_environment的实验,但这似乎没有用,我假设因为那些环境变量只存在于Capistrano创建的shell中。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

  

显然我可以让Cap写出来   分支名称输出到文件并读取它   回到Rails

这是最好的方式,IMO

答案 1 :(得分:0)

这是一种甚至不需要Capistrano的方式,尽管它确实需要git。通过捕获在Rails初始化程序中运行git命令的输出来读取分支名称:

# config/initializers/set_title.rb
module MyConfig
  TITLE = `git symbolic-ref HEAD`.chomp.split("/").last
end

然后只需参考模板中的常量:

<title><%= MyConfig::TITLE %></title>