Mongo Ruby 2.4在中使用minPoolSize时出现未定义的方法错误

Mongo Ruby 2.4在中使用minPoolSize时出现未定义的方法错误,ruby,mongodb,Ruby,Mongodb,我最近升级到Mongo Ruby驱动程序2.4版。当使用minPoolSize作为选项时,我现在得到以下错误: NoMethodError:nil:NilClass的未定义方法“dispatch” from…/mongo-2.4.0/lib/mongo/operation/executable.rb:37:in'block in execute' 例如,这会导致错误: with_options=“#{ENV['MONGO_URL']}?minPoolSize=10” MONGO\u DB=

我最近升级到Mongo Ruby驱动程序2.4版。当使用
minPoolSize
作为选项时,我现在得到以下错误:

NoMethodError:nil:NilClass的未定义方法“dispatch”
from…/mongo-2.4.0/lib/mongo/operation/executable.rb:37:in'block in execute'

例如,这会导致错误:

with_options=“#{ENV['MONGO_URL']}?minPoolSize=10”
MONGO\u DB=MONGO::Client.new(带\u选项)
MONGO_DB[:某些_集合].find().first


看起来像是几年前的事,但除此之外,我找不到任何关于错误的含义以及为什么我不能使用
minPoolSize

的文档。问题是,您没有将
max\u pool\u size
设置为大于最小值。默认的最大值是
5
,当驱动程序尝试从池中退出连接时,它进行检查:

    def create_connection
      if @connections < max_size
        @connections += 1
        @block.call
      end
    end
如果需要使用uri,请执行以下操作:

with_options = "#{ENV['MONGO_URL']}?minPoolSize=10&maxPoolSize=12"
MONGO_DB = Mongo::Client.new(with_options)
MONGO_DB[:example].find().first

你能检查一下你的Gemfile.lock并告诉我保存在那里的mongo db ruby驱动程序的版本吗?@eiko
mongo(2.4.0)
,也供参考@Anthony的解决方案有效。你是否像询问者那样尝试过url格式?我一直在想,这是否是一个url选项与哈希选项的bug。@eiko是-这个bug存在于url或选项哈希中。
with_options = "#{ENV['MONGO_URL']}?minPoolSize=10&maxPoolSize=12"
MONGO_DB = Mongo::Client.new(with_options)
MONGO_DB[:example].find().first