Как сказать, если рельсы находится в производстве?


Я script/server -e production для запуска рельсов в производственном режиме. И у меня нет ошибки. Однако как я могу сказать, если он находится в производственном режиме? Я попробовал несуществующий маршрут, и я получил аналогичную страницу ошибок, которую я сделал в разработке.

Я думал, что если под производственной моделью, я получаю страницу ошибки 404, которая находится в моей /общей папке.

означает ли это, что он не запустился в производственном режиме?

Спасибо за вашу помощь.

6 71

6 ответов:

2 простых способа:

tail -f log/production.log

если есть записи, заполняющие этот журнал после того, как вы попали в приложение, вы находитесь в рабочем режиме.

второй вариант:

в одном из ваших представлений (вероятно, макет хорош), просто добавьте

<%= "Environment: #{RAILS_ENV}" %>

и это покажет вам, в какой среде вы работаете.

edit

вы увидите страницу исключения по умолчанию вместо фактических страниц ошибок в любой среде, если запрос считается "локальным" (то есть от localhost или 127.0.0.1), вы можете переопределить это, добавив это в свой ApplicationController

def local_request?
  false
end

вы можете найти этот метод в документации в api

Если рельсы 3.1+, Rails.env.production? вернутся true когда в производство.

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  

для современных версий рельсов (3+),Rails.env возвращает окружение как String:

Rails.env #=> "production"

есть также полезные методы доступа для каждой среды, которые будут возвращать Boolean:

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  

в командной строке введите rails console, потом Rails.env.

мне было намного проще просто перезапустить сервер rails и прочитать вторую строку в командной строке:

под управлением rails s -e production выходы:

=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000

был Webrick в Примере, но некоторые люди не понимали, как изменение серверов будет просто заменить имя. Обновлено для ясности.

альтернатива командной строки

$echo $RAILS_ENV