2010-12-15 96 views
0

Je suis relativement nouveau sur Ruby on Rails et parfois je trouve que ce truc de convention-over-configuration est un peu déroutant car beaucoup de choses semblaient cachées au développeur, comme dans ce cas. J'utilise les rails 2.3.8 et lorsque j'utilise mon application localement via NetBeans 6.9/Mongrel sur mon système, il s'exécute en utilisant les paramètres de l'environnement de développement .. quand je le déploie dans une boîte Fedora et que je l'exécute dans Apache HTTPD s'exécute automatiquement en utilisant les paramètres de l'environnement de production.Ruby on Rails: Comment définir l'environnement de développement dans lequel une application s'exécute?

Comment mon application sait-elle quel environnement utiliser? Je n'ai rien changé dans mon application pour définir l'environnement .. les deux versions localement et sur ma boîte Fedora sont identiques. Je ne trouve nulle part dans le code où il est en train de définir l'environnement .. alors comment ça marche?

Merci.

Répondre

4

Dans le fichier httpd.conf, écrivez ce qui suit dans VirtualHost: -

## Environnement Rails ici Indiquez, valeur par défaut est "production"
développement RailsEnv

Merci à ..

1

La principale façon de spécifier le mode rails est la variable d'environnement RAILS_ENV (je suppose que development est la valeur par défaut, lorsque rien n'est spécifié). Vous pouvez vérifier sa valeur dans bash, echo $RAILS_ENV.
Vous pouvez également modifier ENV['RAILS_ENV'] dans votre fichier de configuration pour changer le mode:

ENV['RAILS_ENV'] = 'production' 

modifier
Je ne l'ai jamais utilisé des rails avec apache, mais je pense que mod passager peut également spécifier quelque part cette variable, la vérification configs apache pourrait aider.