2010-08-20 9 views

Répondre

4

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.

+0

Intéressant! ce qui devrait être dans l'initialiseur et ce qui devrait être dans l'environnement? Quel est le "bon rail" moyen? –

+0

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 –

1

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.

+0

C'est fascinant. Merci! =) –