tansengming / stripe-rails

A Rails Engine for integrating with Stripe
MIT License
753 stars 123 forks source link

undefined method `constant_name=' for #<Stripe::Plans::Configuration...> #147

Closed estebanbouza closed 5 years ago

estebanbouza commented 5 years ago

Trying this gem now, but I'm getting the error below. Initially I thought this could be a name collision as I have a Plan model in my application, however I have renamed both the model file and the DB table to LegacyPlan and I get the following:

config/stripe/plans.rb:

Stripe.plan "Silver-Plan".to_sym do |plan|
  plan.constant_name = 'SILVER_PLAN'
end

When running rails console:

/Users/me/projects/myproj/config/stripe/plans.rb:35:in `block in <top (required)>': undefined method `constant_name=' for #<Stripe::Plans::Configuration:0x00007f8dacd29b00> (NoMethodError)
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/stripe-rails-1.6.1/lib/stripe/configuration_builder.rb:19:in `block in configuration_for'
        from /Users/me/projects/myproj/config/stripe/plans.rb:34:in `<top (required)>'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:285:in `load'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:285:in `block in load'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:257:in `load_dependency'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:285:in `load'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/stripe-rails-1.6.1/lib/stripe/engine.rb:79:in `block (2 levels) in <class:Engine>'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/stripe-rails-1.6.1/lib/stripe/engine.rb:77:in `each'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/stripe-rails-1.6.1/lib/stripe/engine.rb:77:in `block in <class:Engine>'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-5.2.3/lib/rails/initializable.rb:32:in `instance_exec'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-5.2.3/lib/rails/initializable.rb:32:in `run'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-5.2.3/lib/rails/initializable.rb:61:in `block in run_initializers'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:228:in `block in tsort_each'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:431:in `each_strongly_connected_component_from'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:349:in `block in each_strongly_connected_component'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:347:in `each'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:347:in `call'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:347:in `each_strongly_connected_component'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:226:in `tsort_each'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/tsort.rb:205:in `tsort_each'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-5.2.3/lib/rails/initializable.rb:60:in `run_initializers'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/railties-5.2.3/lib/rails/application.rb:361:in `initialize!'
        from /Users/me/projects/myproj/config/environment.rb:5:in `<top (required)>'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `require'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `block in require'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:257:in `load_dependency'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `require'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/spring-2.0.2/lib/spring/application.rb:102:in `preload'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/gems/2.6.0/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from /Users/me/.rbenv/versions/2.6.2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from -e:1:in `<main>'
tansengming commented 5 years ago

Looks like I forgot to release the new feature so the Readme was ahead of the gem! I just pushed a new release so this should work now:

Stripe.plan "Silver-Plan".to_sym do |plan|
  plan.constant_name = 'SILVER_PLAN'
  plan.name = 'ACME Silver'
  plan.amount = 699 # $6.99
  plan.interval = 'month'
end