Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with 0.3.0 + AR 4.1.9 #11

Closed
devonmeyer opened this issue Feb 3, 2015 · 2 comments
Closed

Issue with 0.3.0 + AR 4.1.9 #11

devonmeyer opened this issue Feb 3, 2015 · 2 comments

Comments

@devonmeyer
Copy link

Hey guys,

I discovered this gem today and integrated it into my Rails application. Everything was working swell until I came across this error:

ArgumentError: wrong number of arguments (1 for 0)
ruby-2.1.5/gems/agent-0.9.1/lib/agent/kernel/select.rb:4:in `select!'.

Upon diving deeper, I found that this gem was the culprit :x

gems/ruby-2.1.5/gems/agent-0.9.1/lib/agent/kernel/select.rb:4:in `select!'
gems/ruby-2.1.5/gems/store_base_sti_class-0.3.0/lib/store_base_sti_class_for_4_1.rb:128:in `build_scope'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/has_one.rb:17:in `build_scope'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:28:in `scope'

I realized that it was breaking only in the case of adding a .includes on the selector...

Business.first.staff
=> [ #<Staff id: 1, first_name: 'Jon', last_name: 'Doe'> ]
Business.includes(:staff).first.staff
ArgumentError: wrong number of arguments (1 for 0)
from /Users/dwm/.rvm/gems/ruby-2.1.5/gems/agent-0.9.1/lib/agent/kernel/select.rb:4:in `select!'

Does version 0.3.0 support Rails 4.1.9 or is 4.1.9 unsupported?

Here's the full BT if it is helpful :

gems/ruby-2.1.5/gems/agent-0.9.1/lib/agent/kernel/select.rb:4:in `select!'
gems/ruby-2.1.5/gems/store_base_sti_class-0.3.0/lib/store_base_sti_class_for_4_1.rb:128:in `build_scope'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/has_one.rb:17:in `build_scope'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:28:in `scope'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:36:in `query_scope'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:32:in `records_for'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:118:in `block in load_slices'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:117:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:117:in `each_slice'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:117:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:117:in `flat_map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:117:in `load_slices'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:91:in `associated_records_by_owner'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/singular_association.rb:9:in `preload'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:20:in `run'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:137:in `block (2 levels) in preloaders_for_one'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:135:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:135:in `map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:135:in `block in preloaders_for_one'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:134:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:134:in `flat_map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:134:in `preloaders_for_one'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:106:in `preloaders_on'
gems/ruby-2.1.5/gems/bullet-4.14.0/lib/bullet/active_record41.rb:35:in `preloaders_on'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:94:in `block in preload'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:93:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:93:in `flat_map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:93:in `preload'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/through_association.rb:14:in `associated_records_by_owner'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/singular_association.rb:9:in `preload'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader/association.rb:20:in `run'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:137:in `block (2 levels) in preloaders_for_one'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:135:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:135:in `map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:135:in `block in preloaders_for_one'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:134:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:134:in `flat_map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:134:in `preloaders_for_one'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:116:in `block in preloaders_for_hash'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:115:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:115:in `flat_map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:115:in `preloaders_for_hash'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:104:in `preloaders_on'
gems/ruby-2.1.5/gems/bullet-4.14.0/lib/bullet/active_record41.rb:35:in `preloaders_on'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:94:in `block in preload'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:93:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:93:in `flat_map'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/associations/preloader.rb:93:in `preload'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation.rb:617:in `block in exec_queries'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation.rb:616:in `each'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation.rb:616:in `exec_queries'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation.rb:493:in `load'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation.rb:238:in `to_a'
gems/ruby-2.1.5/gems/bullet-4.14.0/lib/bullet/active_record41.rb:10:in `to_a'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation/finder_methods.rb:460:in `find_take'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation/finder_methods.rb:98:in `take'
gems/ruby-2.1.5/gems/activerecord-4.1.9/lib/active_record/relation/finder_methods.rb:81:in `find_by'
@jonkessler
Copy link
Contributor

It's definitely supported: we're testing against it, as you can see in our .travis.yml. It looks to me like the "agent" gem is the one responsible here, as that's what's at the top of the backtrace. Looks like they're adding a method to Kernel that is conflicting with something.

@devonmeyer
Copy link
Author

You are correct! Sorry for the false alarm. It seems that the agent gem overrides the default Kernel.select! method and didn't account for the change from .select! to ._select!.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants