Консольная среда 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
загрузить производственную среду по умолчанию, а не среду разработки? И если нет, то почему?
2 ответа
Исполняемый файл rails не может знать, какая среда должна работать на какой машине.
вы можете положить export RAILS_ENV=production
в вашем ~/.bashrc
или же ~/.bash_profile
файл пользователя, с которого вы хотите запустить консоль.
RAILS_ENV - переменная, как и любая другая, которая всегда будет по умолчанию для разработки
если вам нравится, вы всегда можете открыть "~/.bash_profile" на рабочем сервере и добавить это:
alias sc="bundle exec rails console production"
затем беги source ~/.bash_profile
перезагрузить этот файл для вашей терминальной сессии, и вы можете просто позвонить sc
загрузить консоль.