10

在我的機器:Rails的控制檯默認環境

$ bundle exec rails console 
Loading development environment (Rails 3.2.3) 
1.9.3p194 :001 > Rails.env 
=> "development" 

這是預期。到現在爲止還挺好。

然而,我的生產服務器(而我已經使用Capistrano的部署),我得到完全相同的結果上:

$ bundle exec rails console 
Loading development environment (Rails 3.2.3) 
1.9.3p194 :001 > Rails.env 
=> "development" 

在任一機器,我可以代替做:

$ bundle exec rails console production 
Loading development environment (Rails 3.2.3) 
1.9.3p194 :001 > Rails.env 
=> "production" 

我問題是:在生產服務器上,應該不是bundle exec rails console默認加載生產環境,而不是開發環境?如果不是,爲什麼不呢?

+1

這是正常的行爲。您的應用程序只是不知道它在製作或本地服務器上的位置。這就是全部:) – alexkv

+0

謝謝。這只是讓我想知道*爲什麼這是正常的行爲;但我想我可以猜測。 – sampablokuper

+0

謝謝。這回答了我如何運行rails console作爲生產的問題。它不遵循與rails server -e生產相同的模式。 – erroric

回答

16

rails可執行文件無法知道應在哪臺機器上運行哪個環境。

您可以將export RAILS_ENV=production放入您想要啓動控制檯的用戶的~/.bashrc~/.bash_profile文件中。

5

RAILS_ENV是像任何其他變量,如果你喜歡,你可以隨時打開「〜/ .bash_profile中」在生產服務器上,這將始終默認爲發展

,並補充一點:

alias sc="bundle exec rails console production" 

然後運行source ~/.bash_profile爲您的終端會話重新加載該文件,然後您可以撥打sc加載控制檯。