web-dev-qa-db-fra.com

Comment savoir si Rails est en production?

J'ai utilisé script/server -e production pour démarrer Rails en mode production. Cela s'est produit et je n'ai eu aucune erreur. Cependant, comment savoir s'il est en mode production? J'ai essayé une route inexistante et j'ai obtenu un page d'erreur similaire que j'ai faite en développement.

Je pensais que si sous le modèle de production, j'obtiens la page d'erreur 404 qui se trouve dans mon dossier/public.

Cela signifie-t-il qu'il n'a pas démarré en mode production?

Merci de votre aide.

81
sent-hil

2 façons simples:

tail -f log/production.log

s'il y a des entrées qui remplissent ce journal après avoir accédé à l'application, vous êtes en mode production.

deuxième voie:

dans l'une de vos vues (probablement la mise en page est bonne), ajoutez simplement

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

Et cela vous montrera dans quel environnement vous travaillez.

modifier

Vous verrez la page d'exception par défaut au lieu des pages d'erreur réelles sur n'importe quel environnement si la demande est considérée comme "locale" (c'est-à-dire de localhost ou 127.0.0.1), vous pouvez la remplacer en l'ajoutant à votre ApplicationController

def local_request?
  false
end

Vous pouvez trouver cette méthode dans la documentation dans le api

33
Dan McNevin

Si son Rails 3.1+, Rails.env.production? renverra true en production.

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

Pour les versions modernes Rails (3+), Rails.env renvoie l'environnement sous la forme d'un String:

Rails.env #=> "production"

Il existe également des accesseurs utiles pour chaque environnement qui renverront un Boolean:

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

Sur votre ligne de commande, tapez Rails console, puis Rails.env.

8

J'ai trouvé beaucoup plus facile de simplement redémarrer le serveur Rails et de lire la deuxième ligne sur la ligne de commande:

Fonctionnement Rails s -e production les sorties:

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

Il y avait Webrick dans l'exemple, mais certaines personnes ne comprenaient pas comment changer de serveur remplacerait simplement le nom. Mis à jour pour plus de clarté.

3
bkunzi01