65

Użyłem script/server -e production do uruchomienia szyn w trybie produkcji. Tak było i nie mam żadnych błędów. Jak jednak stwierdzić, czy jest on w trybie produkcyjnym? Próbowałem nieistniejącej trasy i otrzymałem podobną stronę błędu, którą zrobiłem podczas programowania.Jak sprawdzić, czy szyny są w produkcji?

Pomyślałem, że jeśli w ramach modelu produkcji, otrzymuję stronę błędu 404, która znajduje się w moim/folderze publicznym.

Czy to oznacza, że ​​nie wystartował w trybie produkcyjnym?

Dzięki za pomoc.

Odpowiedz

31

2 proste sposoby:

tail -f log/production.log 

jeśli istnieją wpisy zaludniając że dziennik po trafieniu aplikację, jesteś w trybie produkcyjnym.

Drugi sposób:

w jednym ze swoich poglądów (prawdopodobnie układ jest dobry), wystarczy dodać

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

A to pokaże, co środowisko, które używasz w

.

edit

Zobaczysz domyślną stronę wyjątku zamiast rzeczywistych stron błędów na każdym environme nt jeżeli wniosek jest uważany za „lokalne” (czyli z localhost lub 127.0.0.1), można zmienić poprzez dodanie tego do swojej ApplicationController

def local_request? 
    false 
end 

Można znaleźć tej metody w docs w api

+0

Nie jestem w stanie uzyskać drugiego sposobu pracy, ale są pewne pozycje w mojej produkcji.log mówiące, że utworzyłem zadanie w czasie X. Dlaczego więc nie otrzymuję prawidłowej strony błędu 404? Czy muszę podać gdzieś odpowiednią stronę błędu? Dzięki za pomoc. –

+0

edytowane, aby dodać, dlaczego nie wyświetla się strona błędu. –

+0

Mam błąd w mojej opinii i musiałem użyć podejścia @ Krishnaprasad. – Besi

191

Jeśli jego Rails 3.1 Rails.env.production? daje prawdziwy

>>> Rails.env.production? 
true 
>>> 
+0

Czy to działa (Rails.env.production?) W Rails 3.0? – Tronathan

+0

Działa dla mnie w Railsach 3.1.3. –

+1

również w szynach 2.3: D – significance

-1

linii poleceń alternatywa

$ echo $ RAILS_ENV

+0

Nie będzie działać, jeśli serwer został uruchomiony z wbudowanym ENV var. To powiedziawszy, gdyby to było zrobione, to skrypt/alias/etc powinien gdzieś żyć na dysku, który będzie zawierał var var RAILS_ENV. Można przeszukiwać dysk, na przykład z 'ack' –

+0

to nie działa .... co jest w zmiennej i jak robi to środowisko? – zee

15

dla nowoczesnych Rails wersji> = 3, Rails.env zwraca środowiska jako ciąg. Następnie zapewnia akcesoria, takie jak Rails.env.the_env_name?, aby sprawdzić, czy to prawda.

3

I okazało się, że znacznie łatwiej jest po prostu zrestartować serwer szyn i zapoznania się z drugą linię w wierszu poleceń:

Running rails s -e production wyjścia:

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

Had WEBrick na przykład, ale niektórzy ludzie nie zrobił” t zrozumieć, jak zmiana serwerów zastąpiłaby nazwę. Zaktualizowano dla jasności.

+8

Nikt przy zdrowych zmysłach nie używa 'WEBrick' w produkcji. – Hauleth

+0

Hauleth jest absolutnie poprawny. Jest to po prostu testowanie środowiska, w którym się znajdujesz, podczas tworzenia. – bkunzi01

+0

Jeśli ta odpowiedź jest trollingowa, to opanowanie! Gratulacje! –

8

W wierszu poleceń wpisz rails console, następnie Rails.env.

Powiązane problemy