15

私の開発マシンで:

$ 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は、開発環境ではなく、デフォルトで本番環境をロードするべきではないかということです。そうでない場合は、なぜですか?

4

2 に答える 2

23

rails実行可能ファイルは、どの環境をどのマシンで実行する必要があるかを知ることができません。

コンソールを起動するユーザーのファイルまたはファイルを入力できexport RAILS_ENV=productionます。~/.bashrc~/.bash_profile

于 2012-05-29T09:58:57.863 に答える
5

RAILS_ENVは他の変数と同様に、常にデフォルトで開発されます。

必要に応じて、本番サーバーで「〜/ .bash_profile」をいつでも開いて、次を追加できます。

 alias sc="bundle exec rails console production"

次に、実行source ~/.bash_profileしてそのファイルをターミナルセッション用にリロードします。呼び出すだけで、scコンソールをロードできます。

于 2012-05-29T09:57:02.807 に答える