2014-04-11 32 views
10

deploy.rb中,我認爲:rails_env通常由您的Capfile中的require 'capistrano/rails'設置。我正在使用導軌,但未使用內置資產管道,因此,請勿使用capistrano /導軌,並且在切換分段和生產部署時必須手動設置的困境。這似乎相當愚蠢,因爲執行cap staging deploycap production deploy時總是包含環境。我發佈這個問題,因爲它似乎可能是一個相當普遍的痛苦點和一個微不足道的解決方案,但經過大量的搜索,我空手而來。因此,我深入研究了Capistrano 3.1.0源代碼,以弄清楚如何訪問在命令行中輸入的階段變量,並且會跟進一個簡單的答案,做一些解釋。如何從Cap deploy命令訪問rails_env?

回答

23

簡單的答案是添加鄰近的deploy.rb頂部的下面的行:

組:RAILS_ENV,抓取(:階段)

可變:stagecapistrano/setup獲取設置所需要在你的Capfile。該腳本爲config/deploy中定義的每個階段創建耙子任務。在rake任務的定義中,您會發現以下內容:set(:stage, stage.to_sym)這是您的cap staging deploycap production deploy命令中的stage/rails_env變量。