2013-02-11 10 views
0

Mon équipe maintient une application Rails. Le ou les développeurs précédents ont décidé de mettre certaines variables de configuration (comme l'identifiant de l'application Facebook, l'identifiant de l'application Twitter) en tant que variables d'environnement. Mais ce n'est pas très polyvalent. Si nous avons deux applications (test et production), nous sommes obligés d'utiliser une seule configuration codée en dur (ou de la changer manuellement). Il est également recommandé de placer ces variables dans le contrôle de version.Rails: Où mettre les variables de configuration

Est-ce la bonne façon de procéder? Sinon, quelle est la bonne façon?

+0

Que voulez-vous dire, "hardcoded"? Si vous les mettez en code, * puis * ils seront codés en dur. Env vars sont la voie à suivre. –

Répondre

1

Nous utilisons la solution suivante dans 2 applications.

  1. variables de configuration de magasin dans les fichiers YML pour https://github.com/railsjedi/rails_config bijou.

  2. Les applications sont configurées pour utiliser différents fichiers yml dans les modes de production et de développement via des initialiseurs.

  3. Sur le répertoire des serveurs de production avec les fichiers yml sont symlinked avec 2 applications.

tâche pour Capistrano a l'air si:

namespace :settings do 
    task :symlink, roles: :app do 
    run "ln -s /path_to_settings/#{rail_env} #{current_path}/config/settings" 
    end 
end 

after "deploy:create_symlink", "settings:symlink" 
Questions connexes