2012-07-21 2 views
0

J'utilise mes fichiers config/environments/<env>.rb pour définir des variables de configuration personnalisées (voir https://stackoverflow.com/a/5053882/483520). Par exemple, je pourrais configurer les paramètres suivants:Variables de configuration de portée dans Rails

config.google_analytics_on = false #or true, in a production environment 
config.google_analytics_account = "<account-string>" 

Il serait agréable de pouvoir faire:

config.google_analytics.on = false 
config.google_analytics.account = "<account-string>" 

de sorte que toutes mes variables google_analytics serait dans ce champ d'application. Cependant, les rails se plaint environ config.google_analytics n'étant pas défini. Comment puis-je le créer?

Répondre

2
opts = {on: false, account: "<account-string>"} 
config.google_analytics = OpenStruct.new(opts) 
+0

Puis-je faire quelque chose avec une syntaxe plus comme: 'config.google_analytics =' OpenStruct.new' config.google_analytics.on = 'false' config.google_analytics.account = « "' EDIT: En effet: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/ostruct/rdoc/OpenStruct.html –