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

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

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

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

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

73 голоса | спросил sent-hil 28 MonEurope/Moscow2009-12-28T06:05:05+03:00Europe/Moscow12bEurope/MoscowMon, 28 Dec 2009 06:05:05 +0300 2009, 06:05:05

6 ответов


0

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

tail -f log/production.log

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

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

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

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

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

изменить

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

def local_request?
  false
end

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

ответил Dan McNevin 28 MonEurope/Moscow2009-12-28T06:09:23+03:00Europe/Moscow12bEurope/MoscowMon, 28 Dec 2009 06:09:23 +0300 2009, 06:09:23
0

Если его Rails 3.1+, Rails.env.production? вернет true при производстве.

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  
ответил Krishnaprasad Varma 22 AM000000110000003631 2011, 11:10:36
0

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

Rails.env #=> "production"

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

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  
ответил Dogweather 31 AM00000070000000631 2013, 07:54:06
0

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

ответил Karolis Ramanauskas 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 06 Sep 2015 13:40:22 +0300 2015, 13:40:22
0

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

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

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

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

ответил bkunzi01 18 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 18 Sep 2014 17:43:16 +0400 2014, 17:43:16
0

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

$ echo $ RAILS_ENV

ответил vireshas 24 Jpm1000000pmTue, 24 Jan 2012 15:23:11 +040012 2012, 15:23:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132