Mon environnement.rb par défaut déborde, et j'aimerais avoir un fichier séparé qui fonctionne exactement de la même manière. Comment puis-je le faire?Comment définir un deuxième fichier environment.rb dans des rails?
Répondre
Vous ajoutez probablement des éléments au fichier d'environnement qui doit figurer dans un initialiseur. Consultez le répertoire config/initializers pour trouver des exemples de ce qu'il faut y placer. Cela devrait vous permettre de briser les choses et de tout organiser.
Rails utilise en fait eval
pour charger les fichiers d'environnement spéciaux tels que config/environments/development.rb. Ceci est le code qu'il utilise:
eval(IO.read(configuration.environment_path), binding, configuration.environment_path)
Vous pouvez définir une méthode telle que load_more_environment
comme ceci:
def load_more_environment(path)
eval(IO.read(path), binding, path)
end
Le premier argument à eval
est juste le code que vous voulez charger et il sera exécuté dans le courant binding
. Le troisième argument sera utilisé pour signaler les erreurs de syntaxe dans le fichier.
C'est fascinant. Merci! =) –
Intéressant! ce qui devrait être dans l'initialiseur et ce qui devrait être dans l'environnement? Quel est le "bon rail" moyen? –
J'utilise généralement le fichier environment.rb pour les paramètres qui s'y trouvent déjà, comme 'config.gem ...'. Tout ce qui n'est pas spécifique à un environnement va dans un initialiseur. http://ryandaigle.com/articles/2007/2/23/what-s-new-in-edge-rails-stop-littering-your-evnrionment-rb-with-custom-initializations –