Shopify / active_merchant
- Source
- Commits
- Network (266)
- Issues (5)
- Downloads (0)
- Wiki (5)
- Graphs
-
Branch:
master
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
Active Merchant is a simple payment abstraction library used in and sponsored by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim of the project is to feel natural to Ruby users and to abstract as many parts as possible away from the user to offer a consistent interface across all supported gateways. — Read more
-
Bug: ActiveMerchant view helpers loads Routes early if ActiveMerchant is used as a plugin. Specifically, this breaks Clearance's routing extensions. Really crazy bug to try to track down!
Workaround: Use ActiveMerchant as a gem
Comments
-
When trying to migrate a database to add a new model the Active Merchant plugin seems to prevent it from happening. I was using Rails 2.3.3. I've done a trace and these are the results displayed.
UPDATE: (I believe this Google post has the same problem but explains it better? http://groups.google.com/group/activemerchant/browse_thread/thread/650b28ef74c63f96)
Invoke db:migrate (first_time) Invoke environment (first_time) ** Execute environment rake aborted!
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]=
C:/RailsProjects/rails_apps/fashion/vendor/plugins/active_merchant/lib/active_me
rchant/billing/integrations/helper.rb:27:inmapping'<br/> C:/RailsProjects/rails_apps/fashion/vendor/plugins/active_merchant/lib/active_me<br/> rchant/billing/integrations/bogus/helper.rb:6<br/> C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ing
em_original_require'
C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inr<br/> equire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:156:inrequire'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:521:innew_constants_in'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:156:inrequire'
C:/RailsProjects/rails_apps/fashion/vendor/plugins/active_merchant/lib/active_me
rchant/billing/integrations/bogus.rb:1
C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ing<br/> em\_original\_require'<br/> C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inr
equire'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:156:inrequire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:521:innew_constants_in'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:156:inrequire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/plugins/active_merchant/lib/active_me<br/> rchant/billing/integrations.rb:4<br/> C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ing
em_original_require'
C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inr<br/> equire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:156:inrequire'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:521:innew_constants_in'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:156:inrequire'
C:/RailsProjects/rails_apps/fashion/vendor/plugins/active_merchant/lib/active_me
rchant.rb:60
C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ing<br/> em\_original\_require'<br/> C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inr
equire'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:156:inrequire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:521:innew_constants_in'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:156:inrequire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/plugins/active_merchant/init.rb:1:in<br/>evaluate_init_rb' C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/rails/pl
ugin.rb:146:inevaluate_init_rb'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/core_ext/kernel/reporting.rb:11:insilence_warnings'
C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/rails/pl
ugin.rb:142:inevaluate_init_rb'<br/> C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/rails/pl<br/> ugin.rb:48:inload'
C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/rails/pl
ugin/loader.rb:38:inload_plugins'<br/> C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/rails/pl<br/> ugin/loader.rb:37:ineach'
C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/rails/pl
ugin/loader.rb:37:inload_plugins'<br/> C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/initiali<br/> zer.rb:348:inload_plugins'
C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/initiali
zer.rb:163:inprocess'<br/> C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/initiali<br/> zer.rb:113:insend'
C:/RailsProjects/rails_apps/fashion/config/../vendor/rails/railties/lib/initiali
zer.rb:113:inrun'<br/> C:/RailsProjects/rails_apps/fashion/config/environment.rb:18<br/> C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ing
em_original_require'
C:/RailsProjects/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inr<br/> equire'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:156:inrequire'
C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor
t/dependencies.rb:521:innew_constants_in'<br/> C:/RailsProjects/rails_apps/fashion/vendor/rails/activesupport/lib/active_suppor<br/> t/dependencies.rb:156:inrequire'
C:/RailsProjects/rails_apps/fashion/vendor/rails/railties/lib/tasks/misc.rake:4
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:incall<br/> ' C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:inexec
ute'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:ineach<br/> ' C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:inexec
ute'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:ininvo<br/> ke\_with\_call\_chain'<br/> C:/RailsProjects/ruby/lib/ruby/1.8/monitor.rb:242:insynchronize'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:ininvo<br/> ke\_with\_call\_chain'<br/> C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:ininvo
ke_prerequisites'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:ineach<br/> ' C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:ininvo
ke_prerequisites'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:ininvo<br/> ke\_with\_call\_chain'<br/> C:/RailsProjects/ruby/lib/ruby/1.8/monitor.rb:242:insynchronize'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:ininvo<br/> ke\_with\_call\_chain'<br/> C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:ininvo
ke'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:ininv<br/> oke_task'<br/> C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:intop
level'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:ineac<br/> h'<br/> C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:intop
level'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:insta<br/> ndard\_exception\_handling'<br/> C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:intop
_level'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:inrun<br/> ' C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:insta
ndard_exception_handling'
C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:inrun<br/> ' C:/RailsProjects/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31<br/> C:/RailsProjects/ruby/bin/rake:19:inload'
C:/RailsProjects/ruby/bin/rake:19Comments
Haven't heard of this problem anywhere else. Please open a ticket in the ActiveMerchant bug tracker if you still have this problem.





One more note: we were subclassing the Clearance Users controller, and adding a custom method to it - so there was also that in play.
Can you use the Rails plugin ordering facility to load ActiveMerchant after Clearance? Please open a ticket in the bug tracker for this.