2011-01-25 5 views
0

私はCapistranoと一緒に配備されたRailsアプリケーションを持っています。そしてAcceptance環境では、現在配備されているブランチを含むようにページタイトルを設定したいと思います。CapistranoとRailsの間で変数を送信するにはどうすればよいですか?

支店はCapistranoを介して展開時に設定されています。その情報をCapからRailsに何とか移行したいと思います。

明らかに、Capにブランチ名をファイルに書き込んでRailsで読み戻すことができますが、もっと良い解決策が得られることを願っています。

私はdefault_environmentを設定していくつかの実験を試みましたが、動作していないようです。これらの環境変数はCapistranoが作成するシェルにのみ存在するためです。

提案がありますか?最善の方法だ

答えて

0

もちろん、私は戻ってRailsの

でキャップをファイルに出 ブランチ名を書き、それを を読むために

を得ることができ、IMO

0

ここにdoesnの方法がありますカイストラノが必要な場合でも、gitが必要です。 Railsの初期化子でのgitコマンドを実行しているからの出力をキャプチャすることにより、ブランチ名を読む:

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

は、それからちょうどあなたのテンプレートに定数を参照してください。

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

うん、私も似たような考えていましたしかし、その問題は、私がいつも "デプロイ"の枝に終わるということです。私はこれがCapistranoで展開する人工物なのか、Githubの配備キーを使用するのかとは分かりません。 –

+0

ああ、そうです。デプロイ時に新しいブランチを作成する必要があります。 'git log --decorate'の出力の最初の行を取得しようとします。この出力には、リモートリポジトリのブランチ名とタグ名があるようです。あるいは、gitはこれを行う別の方法があります。 – zetetic

+0

興味深い。必ずしも一貫しているとは限りませんが、見て分かるようです。ありがとう。 –

関連する問題