在我的项目中,我有以下类层次结构,使用带有STI的Mongoid:
class User
include Mongoid::Document
end
class SpecificUser < User
end
class MoreSpecificUser < SpecificUser
end
当我查询User.count
和MoreSpecificUser.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。
答案 0 :(得分:0)
似乎在application.rb中添加config.mongoid.preload_models = true
就解决了这个问题。
http://docs.mongodb.org/ecosystem/tutorial/ruby-mongoid-tutorial/#model-preloading