1

Utilisation de Rails 5.0.1. J'ai dans ma config/initializers/fichier sidekiq.rb ...Quelle est la bonne façon d'insérer des variables envionrment dans mon fichier de configuration?

Sidekiq.configure_server do |config| 
    config.redis = { url: 'redis://#{ENV['REDIS_PORT_6379_TCP_ADDR']}:#{ENV['REDIS_PORT_6379_TCP_PORT']}/12', namespace: "sidekiq_app_name_#{ENV['RAILS_ENV']}" } 
end 

Sidekiq.configure_client do |config| 
    config.redis = { url: 'redis://#{ENV['REDIS_PORT_6379_TCP_ADDR']}:#{ENV['REDIS_PORT_6379_TCP_PORT']}/12', namespace: "sidekiq_app_name_#{ENV['RAILS_ENV']}" } 
end 

Bien que j'ai les variables envionrment définies dans mon système, lorsque je tente de lancer mon serveur, je reçois ces erreurs ...

/Users/davea/.rvm/gems/ruby-2.4.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:287:in `load': /Users/davea/Documents/workspace/myproject/config/initializers/sidekiq.rb:2: syntax error, unexpected tCONSTANT, expecting '}' (SyntaxError) 
{ENV['REDIS_PORT_6379_TCP_ADDR']}:#{ENV['REDIS_PORT_6379_TCP 
          ^
/Users/davea/Documents/workspace/myproject/config/initializers/sidekiq.rb:2: syntax error, unexpected tCONSTANT, expecting keyword_end 
{ENV['REDIS_PORT_6379_TCP_PORT']}/12', namespace: "sidekiq_a 
          ^
/Users/davea/Documents/workspace/myproject/config/initializers/sidekiq.rb:2: syntax error, unexpected '}', expecting end-of-input 
pp_name_#{ENV['RAILS_ENV']}" } 

Quelle est la bonne façon d'insérer des variables d'environnement dans mon fichier de configuration?

Répondre

0

Vous pouvez utiliser le figaro gemme:

gem "figaro" 

Comment l'utiliser, dans le readme.txt expliquer très easly: ​​

config/application.yml 

stripe_api_key: "sk_live_dSqzdUq80sw9GWmuoI0qJ9rL" 



ENV["stripe_api_key"] # => "sk_live_dSqzdUq80sw9GWmuoI0qJ9rL" 
ENV.key?("stripe_api_key") # => true 
ENV["google_analytics_key"] # => nil 
ENV.key?("google_analytics_key") # => false 

Figaro.env.stripe_api_key # => "sk_live_dSqzdUq80sw9GWmuoI0qJ9rL" 
Figaro.env.stripe_api_key? # => true 
Figaro.env.google_analytics_key # => nil 
Figaro.env.google_analytics_key? # => false 
+0

Alors que je comprends bien, pourquoi est-figaro différent que je crée mon environnement variables dans mon shell? Par exemple, avant de lancer le serveur rails, je peux lancer "echo $ REDIS_PORT_6379_TCP_ADDR" et récupérer une valeur ("localhost"). Est-ce que l'erreur que j'éprouve au-dessus d'un résultat du fait que Rails ne récupère pas mes variables d'environnement globales? – Dave

+0

@Dave, c'est fini, figaro est juste un outil pour vous aider à atteindre cet objectif! mais vous pouvez le faire sans tout, je pense peut-être que si vous regardez le problème d'un autre point de vue, vous pouvez atteindre votre objectif –

+0

@Dave J'espère que vous trouverez ma réponse utile –