2010-10-13 8 views
9

J'ai une application de rails 3 (que j'ai mise à jour). Il fonctionne sur passenger et nginx mais sur mon serveur de production, il démarre également avec l'environnement défini sur 'production'. Je sais qu'il me manque quelque chose de vraiment basique, mais je n'arrive pas à comprendre où placer l'environnement au lieu de dans environment.rb.Rails 3 - environnement de jeu

Merci de votre aide! MISE À JOUR: ok, j'ai appris que je peux encore le faire avec Rails.env = 'production'.

Cela me semble une vieille école. Connaissez-vous une manière élégante de configurer cela peut-être dans le Capfile ou sth comme ça?

Répondre

6

Rails 3 est un peu différent de Rails 2.x en ce qu'il a un fichier config.ru, comme les autres applications Rack. Passager détecte les rails comme une application Rack, donc vous devrez utiliser RackEnv au lieu de RailsEnv dans le vhost. Vous pouvez définir l'environnement à l'aide de RackEnv conformément à la documentation de Passenger/Nginx.

3

Vous pouvez configurer un RAILS_ENV différent pour chaque application dans votre vhost pour nginx avec passager. Je n'ai jamais utilisé nginx mais dans Apache c'est juste une directive RailsEnv=development. De cette façon, chaque site est configuré, pas de soucis avec la configuration d'une tâche de plafond ou d'une variable ou quoi que ce soit. Voir le docs. Notez que la valeur par défaut est production, cela devrait donc déjà être défini pour vous.