-
Notifications
You must be signed in to change notification settings - Fork 40
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
mongoid 7.1.0 issue with arguments #85
Comments
Maybe Ruby version-related (named arguments?)? Either way try to PR something? |
I will debug more tomorrow. It only happens when |
I am struggling finding the issue: I created a new application
added the following gems
added a test model
getting the same error
repository is here: https://github.com/SimonHausdorf/mongoid-locker-test Edit: |
Hello. Mongoid gem doesn't use But we still have one test failure, 7.1 model.where(_id: 1)
=> #<Mongoid::Criteria
selector: {"_id"=>1}
options: {}
class: User
embedded: false>
model.where(_id: 1).locked
=> #<Mongoid::Criteria
selector: {"_id"=>1, "$and"=>[{"locking_name"=>{:$exists=>true, :$ne=>nil}}, {"locked_at"=>{:$exists=>true, :$ne=>nil}}, {"$where"=>"new Date() - this.locked_at < 5000"}]}
options: {}
class: User
embedded: false>
model.where(_id: 1).locked.where(_id: 2)
=> #<Mongoid::Criteria
selector: {"_id"=>1, "$and"=>[{"_id"=>2}]}
options: {}
class: User
embedded: false> 7.0 model.where(_id: 1)
=> #<Mongoid::Criteria
selector: {"_id"=>1}
options: {}
class: User
embedded: false>
model.where(_id: 1).locked
=> #<Mongoid::Criteria
selector: {"_id"=>1, "$and"=>[{"locking_name"=>{:$exists=>true, :$ne=>nil}}, {"locked_at"=>{:$exists=>true, :$ne=>nil}}, {"$where"=>"new Date() - this.locked_at < 5000"}]}
options: {}
class: User
embedded: false>
model.where(_id: 1).locked.where(_id: 2)
=> #<Mongoid::Criteria
selector: {"_id"=>2, "$and"=>[{"locking_name"=>{:$exists=>true, :$ne=>nil}}, {"locked_at"=>{:$exists=>true, :$ne=>nil}}, {"$where"=>"new Date() - this.locked_at < 5000"}]}
options: {}
class: User
embedded: false> We can make this test loose, but I thought put the log here. So, is this the gem issue? |
Hey :) |
@SimonHausdorf began write and pressed ctrl+enter to go to new line. I have finished the comment. |
@SimonHausdorf this is known issue, see workarounds here |
About strange querying behavior, something similar |
The front-office and back-office apps when the engine has been bumped have also taken on the latest version of mongoid-locker (v2.0.1) because it was not pinned. Though only a minor change it appears it has a dependency on Mongoid v7 and changes it has made around not using ActiveSupport method `delegate` since version 7.1 We ascertained this from a statement made in the issue [mongoid 7.1.0 issue with arguments](mongoid/mongoid-locker#85 (comment)) > Mongoid gem doesn't use ActiveSupport method delegate since 7.1 version. The issue was fixed in the mongoid-locker PR [Add forwardable module and upgrade rubocop](mongoid/mongoid-locker#86). And that change seems to be the key difference between version 2.0.0 and 2.0.1. The error we see in the apps when v2.0.1 is being used is ``` An error occurred while loading ./spec/forms/waste_carriers_engine/base_forms_spec.rb. Failure/Error: delegate :contact_address, :contact_email, :registered_address, to: :registration ArgumentError: wrong number of arguments (given 4, expected 1) ``` In this example if you go to order_copy_cards_registration.rb:10 you'll find ```ruby delegate :contact_address, :contact_email, :registered_address, to: :registration ``` Depending on whether you run rspec or try to hit a page in the app this is the error that gets thrown. So we are pinning the version of mongoid-locker we use, until we can complete the work to upgrade the version of ruby and rails we are using. We should then be able to use Mongoid v7.1 (or greater) and hopefully the issue goes away!
* Bump mongoid-locker from 2.0.0 to 2.0.1 Bumps [mongoid-locker](https://github.com/mongoid/mongoid-locker) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/mongoid/mongoid-locker/releases) - [Changelog](https://github.com/mongoid/mongoid-locker/blob/master/CHANGELOG.md) - [Commits](mongoid/mongoid-locker@v2.0.0...v2.0.1) Signed-off-by: dependabot-preview[bot] <[email protected]> * Pin mongoid-locker to 2.0.0 The front-office and back-office apps when the engine has been bumped have also taken on the latest version of mongoid-locker (v2.0.1) because it was not pinned. Though only a minor change it appears it has a dependency on Mongoid v7 and changes it has made around not using ActiveSupport method `delegate` since version 7.1 We ascertained this from a statement made in the issue [mongoid 7.1.0 issue with arguments](mongoid/mongoid-locker#85 (comment)) > Mongoid gem doesn't use ActiveSupport method delegate since 7.1 version. The issue was fixed in the mongoid-locker PR [Add forwardable module and upgrade rubocop](mongoid/mongoid-locker#86). And that change seems to be the key difference between version 2.0.0 and 2.0.1. The error we see in the apps when v2.0.1 is being used is ``` An error occurred while loading ./spec/forms/waste_carriers_engine/base_forms_spec.rb. Failure/Error: delegate :contact_address, :contact_email, :registered_address, to: :registration ArgumentError: wrong number of arguments (given 4, expected 1) ``` In this example if you go to order_copy_cards_registration.rb:10 you'll find ```ruby delegate :contact_address, :contact_email, :registered_address, to: :registration ``` Depending on whether you run rspec or try to hit a page in the app this is the error that gets thrown. So we are pinning the version of mongoid-locker we use, until we can complete the work to upgrade the version of ruby and rails we are using. We should then be able to use Mongoid v7.1 (or greater) and hopefully the issue goes away! Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Alan Cruikshanks <[email protected]>
👋 I'm also getting this error with mongoid 6.4.5 and mongoid-locker 2.0.1. I couldn't find any workaround to make it work.
|
something stopped working with mongoid 7.1.0 gem release. It was still fine with 7.1.0.rc0
address.rb
The text was updated successfully, but these errors were encountered: