wake-up-neo.com

Wie kann man feststellen, ob Rails in Produktion ist?

Ich benutzte script/server -e production um Rails im Produktionsmodus zu starten. Es hat funktioniert und ich habe keine Fehler erhalten. Wie kann ich jedoch feststellen, ob es im Produktionsmodus ist? Ich habe eine nicht vorhandene Route ausprobiert und eine ähnliche fehlerseite habe ich in der entwicklung gemacht.

Ich dachte, wenn unter Produktionsmodell, bekomme ich die 404-Fehlerseite, die in meinem/public-Ordner ist.

Bedeutet das, dass es nicht im Produktionsmodus gestartet wurde?

Danke für Ihre Hilfe.

81
sent-hil

2 einfache Wege:

tail -f log/production.log

wenn sich Einträge in diesem Protokoll befinden, nachdem Sie die App aufgerufen haben, befinden Sie sich im Produktionsmodus.

zweiter Weg:

fügen Sie in einer Ihrer Ansichten (wahrscheinlich ist das Layout gut) einfach hinzu

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

Und das zeigt Ihnen, in welcher Umgebung Sie gerade arbeiten.

edit

In jeder Umgebung wird anstelle der eigentlichen Fehlerseiten die Standardausnahmeseite angezeigt. Wenn die Anforderung als "lokal" (dh von localhost oder 127.0.0.1) eingestuft wird, können Sie dies überschreiben, indem Sie dies zu Ihrem ApplicationController hinzufügen.

def local_request?
  false
end

Sie finden diese Methode in den Dokumenten unter api

33
Dan McNevin

Wenn es Rails 3.1+, Rails.env.production? gibt in der Produktion true zurück.

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

Für moderne Rails Versionen (3+), Rails.env gibt die Umgebung als String zurück:

Rails.env #=> "production"

Es gibt auch hilfreiche Accessoren für jede Umgebung, die ein Boolean zurückgeben:

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

Geben Sie in Ihrer Befehlszeile Rails console, dann Rails.env.

8

Ich fand es viel einfacher, den Rails Server neu zu starten und die zweite Zeile in der Befehlszeile zu lesen:

Laufen Rails s -e production Ausgänge:

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

Wir hatten Webrick im Beispiel, aber einige Leute verstanden nicht, wie ein Serverwechsel den Namen ersetzen würde. Der Übersichtlichkeit halber aktualisiert.

3
bkunzi01