-
Type:
Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
I have this default scope on one app:
default_scope -> {
all_of({'$or' => [{:maximum_uses => nil}, {:maximum_uses.gt => :uses}]},
{'$or' => [{:expires_at => nil}, {:expires_at.gt => Time.now}]})
}
For some reason, Model.first fails with the error in the title. Other methods, including Model.all, work perfectly. That's why I'm thinking this is a bug.
Here's the stack trace:
TypeError: keys must be strings or symbols
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/bson-1.6.2/lib/bson/bson_c.rb:24:in `serialize'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/bson-1.6.2/lib/bson/bson_c.rb:24:in `serialize'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongo-1.6.2/lib/mongo/cursor.rb:604:in `construct_query_message'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongo-1.6.2/lib/mongo/cursor.rb:465:in `send_initial_query'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongo-1.6.2/lib/mongo/cursor.rb:458:in `refresh'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongo-1.6.2/lib/mongo/cursor.rb:128:in `next'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongo-1.6.2/lib/mongo/collection.rb:288:in `find_one'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/collections/master.rb:25:in `block in find_one'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/collections/retry.rb:29:in `retry_on_connection_failure'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/collections/master.rb:24:in `find_one'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/collection.rb:60:in `find_one'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/contexts/mongo.rb:203:in `first'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/criteria.rb:45:in `one'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/criterion/inclusion.rb:127:in `find'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/finders.rb:84:in `find'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/mongoid-2.4.8/lib/mongoid/finders.rb:122:in `first'
from (irb):16
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/railties-3.2.2/lib/rails/commands/console.rb:47:in `start'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/railties-3.2.2/lib/rails/commands/console.rb:8:in `start'
from /Users/goncalosilva/.rvm/gems/ruby-1.9.3-p125/gems/railties-3.2.2/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Any hints?
Thanks!