ruby on rails - Undefined method 'secret_key' in Stripe API integration -


i working on integrating stripe rails app. per stripe's documentation, i've added following 'config/initializers/stripe.rb', , set environmental variables test keys:

rails.configuration.stripe = {   :publishable_key => env['publishable_key'],   :secret_key      => env['secret_key'] }  stripe.api_key = rails.configuration.stripe[:secret_key] 

(editing add suggested, changed following)

rails.configuration.stripe = { :publishable_key => env['stripe_publishable_key'] ||=  rails.application.secrets.stripe_publishable_key, :secret_key => env['stripe_secret_key'] ||= rails.application.secrets.stripe_secret_key, }  stripe.api_key = rails.configuration.stripe[:secret_key] 

when try (generate controller, say, or run server), error saying have "undefined method `secret_key'":

 $ rails s => booting webrick => rails 4.2.0 application starting in development on http://localhost:3000 => run `rails server -h` more startup options => ctrl-c shutdown server exiting    /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/stripe-rails-0.3.1/lib/stripe/engine.rb:20:in `block in <class:engine>': undefined method `secret_key' #<hash:0x000000066aa1e8> (nomethoderror)     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `instance_exec'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `run'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/initializable.rb:55:in `block in run_initializers'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:347:in `block in each_strongly_connected_component'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in `each'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in `call'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:224:in `tsort_each'     /usr/local/rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/initializable.rb:54:in `run_initializers'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/application.rb:352:in `initialize!'     /home/ubuntu/workspace/junkyardstorefinal/config/environment.rb:5:in `<top (required)>'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `block in require'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require'     /home/ubuntu/workspace/junkyardstorefinal/config.ru:3:in `block in <main>'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/builder.rb:55:in `instance_eval'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/builder.rb:55:in `initialize'     /home/ubuntu/workspace/junkyardstorefinal/config.ru:in `new'     /home/ubuntu/workspace/junkyardstorefinal/config.ru:in `<main>'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/builder.rb:49:in `eval'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/builder.rb:49:in `new_from_string'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/builder.rb:40:in `parse_file'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/server.rb:299:in `build_app_and_options_from_config'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/server.rb:208:in `app'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/server.rb:61:in `app'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/rack-1.6.0/lib/rack/server.rb:336:in `wrapped_app'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/server.rb:139:in `log_to_stdout'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/server.rb:78:in `start'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:80:in `block in server'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `tap'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `server'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>'     /home/ubuntu/workspace/junkyardstorefinal/bin/rails:8:in `require'     /home/ubuntu/workspace/junkyardstorefinal/bin/rails:8:in `<top (required)>'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'     /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'     /home/ubuntu/workspace/junkyardstorefinal/bin/spring:13:in `require'     /home/ubuntu/workspace/junkyardstorefinal/bin/spring:13:in `<top (required)>'     bin/rails:3:in `load'     bin/rails:3:in `<main>' 

what other data helpful can help? that's entirety of stripe.rb there, , can't find anywhere else i've used "secret_key" or anywhere else appears in the tutorial working through. nor have touched of files mentioned in full trace.

oddly, although can't start server on cloud9, when use heroku @ it, app launches , works fine -- other problem connecting redis prevents displaying user's cart.

(updating add: i've merged branch on , tried push merged master branch, means heroku compiles now, find can't push heroku master branch without getting "nomethoderror: undefined method `secret_key' #" , "push rejected".)

i think error env['publishable_key'] , env['secret_ket'] nil.

to solve problem. in terminal

$export publishable_key=yourpublisablekey $export secret_key=yoursecretkey $rails s 

i encourage put key's in secret.yml like

development:   stripe_publishable_key: yourpublisablekey   stripe_secret_key: yoursecretkey production:   stripe_publishable_key: yourpublisablekey   stripe_secret_key: yoursecretkey 

you can access simple adding rails.application.secrets.stripe_publishable_key , rails.application.secrets.stripe_secret_key

for example in config/initializers/stripe.rb

rails.configuration.stripe = {    :publishable_key => env['publishable_key'] ||= rails.application.secrets.stripe_publishable_key,    :secret_key      => env['secret_key'] ||= rails.application.secrets.stripe_secret_key } 

hope helps.