我有一个作用域,我在rails中应用到一个Mongoid对象,它在开发时工作得很好,但在运行测试时却不是。它在测试中根本不起作用。这是一个嵌入式文档。
父:
class Person
include Mongoid::Document
def self.with_appointments
where(:appointments.not => { '$size' => 0 })
end
embeds_many :appointments, store_as: 'Appointments', class_name: 'Appointment'
end
嵌入子元素:
class Appointment
include Mongoid::Document
embedded_in :person
end
当我对模型运行测试时,它返回person,无论他们是否有约会。如果我从开发中的控制器对数据库运行相同的操作,它会过滤掉具有空约会的人员。
我错过了什么?
在要求我更改数据库设置之前-
- 我无法控制数据结构
- 假设我甚至没有对数据库的写访问权限
检查您的GemFile,我打赌Mongoid设置为仅在开发中运行:
尝试切换这个
gem 'mongoid', group: :development
gem 'mongoid'