使用Mongoid

时间:2015-10-19 18:17:25

标签: ruby-on-rails mongodb mongoid

在我的项目中,我有以下类层次结构,使用带有STI的Mongoid:

class User
  include Mongoid::Document
end

class SpecificUser < User
end

class MoreSpecificUser < SpecificUser
end

当我查询User.countMoreSpecificUser.count时,Mongoid会给我正确的结果,但返回0 当我尝试SpecificUser.count时。只有在我查询MoreSpecificUser.count后,它才会返回正确的值 为SpecificUser.count。有没有办法使SpecificUser中的查询返回正确的值 没有查询其子类之前?

注意:之前它正在使用MongoMapper,它只是在我迁移到Mongoid后才破坏。

我的mongoid.yml:

development:
  clients:
    default:
      database: dev_project
      hosts:
        - 127.0.0.1:27017
      options:
        preload_models: true
        max_pool_size: 16
  options:
    raise_not_found_error: false

我正在使用Mongoid 5,MongoDB 2.6,Ruby 2.2.2和Rails 4.2.4。

1 个答案:

答案 0 :(得分:0)

似乎在application.rb中添加config.mongoid.preload_models = true就解决了这个问题。

http://docs.mongodb.org/ecosystem/tutorial/ruby-mongoid-tutorial/#model-preloading