在我的项目中,我有如下的类层次结构,使用带有STI的Mongoid:
class User
include Mongoid::Document
end
class SpecificUser < User
end
class MoreSpecificUser < SpecificUser
end当我查询User.count和MoreSpecificUser.count时,Mongoid给了我正确的结果,但当我尝试SpecificUser.count时,返回0。只有在我查询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我使用的是Mongoid5、Ruby2.6、MongoDB 2.2.2和Rails 4.2.4。
发布于 2015-10-20 20:29:06
在application.rb中添加config.mongoid.preload_models = true似乎可以解决这个问题。
http://docs.mongodb.org/ecosystem/tutorial/ruby-mongoid-tutorial/#model-preloading
https://stackoverflow.com/questions/33221212
复制相似问题