Консольная среда 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 загрузить консоль.

Другие вопросы по тегам