这是设置:
宝石文件:
gem 'mongo_mapper', '>= 0.13.0.beta1'
gem 'plucky', '>= 0.6.5'
控制器:
@job = Job.where(:admin_id => a.id)
Rails 控制台输出(记录器):
@job is []
一个“a.id”值恰好是:
a.id is 51ddbd6b972791243d0000f1
Mongo直接查询:
db.jobs.find({ admin_id: "51ddbd6b972791243d0000f1" })
>>>Lots of stuff<<<
多少?
> db.jobs.find({ admin_id: "51ddbd6b972791243d0000f1" }).count()
202
那么 - 为什么这个查询在 Mongo 中直接完成时会返回结果,并在从控制器调用时返回一个空数组?
更具体地说 - 这是简单的循环:
@tech_d = []
@tech.each do |a|
Rails.logger.info("a.id is " + a.id)
@job = Job.where(:admin_id => a.id)
Rails.logger.info("@job is " + @job.to_a.to_s)
这会产生这样的东西:
a.id is 51ddbd6b972791243d0000f1
@job is []
a.id is 51f976f2811d830002000adc
@job is []
但正如我已经证明的那样 - 在 Mongo 中直接完成这个简单的查询会有结果。
**编辑 - 我已经尝试过 mongo_mapper gem 0.12.0 的 GA 版本,结果是相同的(将 plucky 降级为 0.5.2 以匹配 - 没有变化)