Uploaded image for project: 'Mongoid'
  1. Mongoid
  2. MONGOID-1931

TypeError: keys must be strings or symbols

    • Type: Icon: Task Task
    • Resolution: Done
    • 2.4.9
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      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!

            Assignee:
            Unassigned Unassigned
            Reporter:
            goncalossilva goncalossilva
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: