我有一个叫做Department
的mongoid模型和一个名为User
的独立模型,两个模型之间没有本地关系。由于我的应用程序中的关系如何工作,我手动将文档ID存储在用户模型上。将从mongoid查询构建的Ruby数组转换为实际的mongoid对象,或者重新写入方法以返回mongoid对象?
我使用Ruby的Grape
框架,它有一个名为Entities
Mongoid对象上面的一个过滤系统,并拒绝任何心不是一个mongoid查询响应对象,因为该方法返回一个红宝石阵列,而不是一个Mongoid对象,我的框架给了我错误。
有没有什么办法可以重写我的函数来返回一个Mongoid对象?或者有什么办法我可以将一个Mongoid对象数组转换成一个Mongoid对象?
## inside Department Model
def self.user_can_access(user = nil)
if user != nil
departments = []
## department_access_keys are embedded documents belonging to a user
user.department_access_keys.each do |key|
departments << BACKBONE::Department.find(key.key)
end
departments ## => returns an array of Department Documents that a user has been granted access to
else
raise 'user was not defined'
end
end
谢谢!我不知道为什么葡萄实体不接受数组,但这解决了我的问题! – aronlmin