Как определить, работает ли рельсы?

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

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

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

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

Ответ 1

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

tail -f log/production.log

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

второй способ:

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

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

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

изменить

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

def local_request?
  false
end

Этот метод можно найти в документах в api

Ответ 2

Если его Rails 3.1 Rails.env.production? даст вам истинное

>>> Rails.env.production?  
true  
>>>  

Ответ 3

Для современных версий Rails >= 3, Rails.env возвращает среду как строку. И затем он предоставляет аксессуарам, например, Rails.env.the_env_name?, чтобы проверить, верно ли это.

Ответ 4

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

Ответ 5

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

Выполнение rails s -e production выходов:

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

В этом примере был Webrick, но некоторые люди не понимали, как сменные серверы просто подменяют имя. Обновлено для ясности.

Ответ 6

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

$echo $RAILS_ENV