10

Sulla mia macchina di sviluppo:Rails console di ambiente predefinite

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

Questo è previsto. Fin qui tutto bene.

Eppure sul mio server di produzione (a cui ho schierato utilizzando Capistrano), ottengo esattamente lo stesso risultato:

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

Su entrambi macchina, posso invece fare:

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

mio la domanda è: sul server di produzione, non dovrebbe bundle exec rails console caricare l'ambiente di produzione per impostazione predefinita, invece dell'ambiente di sviluppo? E se no, perché no?

+1

È un comportamento normale. La tua app non sa esattamente dove è in produzione o sul tuo server locale. Questo è tutto :) – alexkv

+0

Grazie. Questo mi lascia solo chiedendo * perché * è un comportamento normale; ma penso di poter indovinare. – sampablokuper

+0

Grazie. Questo ha risposto alla mia domanda su come eseguire la console di rails come produzione. Non segue lo stesso schema della produzione di server di rails. – erroric

risposta

16

L'eseguibile delle guide non può sapere quale ambiente deve essere eseguito su quale macchina.

è possibile inserire export RAILS_ENV=production nel file ~/.bashrc o ~/.bash_profile dell'utente con cui si desidera avviare la console.

5

RAILS_ENV è una variabile come un altro che sarà sempre di default per lo sviluppo

se ti piace si può sempre aprire '~/.bash_profile' sul server di produzione e aggiungere questo:

alias sc="bundle exec rails console production" 

quindi eseguire source ~/.bash_profile per ricaricare quel file per la sessione del terminale e si può semplicemente chiamare sc per caricare la console.