我正在使用 Mongoid 并且有一个项目和一个用户模型。在项目模型中,我有一个字段
class Project
include Mongoid::Document
field :name
field :user_ids, :type => Array
end
class User
include Mongoid::Document
field :email
end
我可以找到属于一个项目的所有用户,即“找到这个项目的用户”
@project = Project.first # => 'Housework'
User.criteria.id(@project.user_ids) # => ['Bart','Lisa','Maggie']
但是我很难找到属于一个用户的所有项目,即“找到这个用户的项目”
@user = User.first # => 'Bart'
Project.where(:user_ids => @user.id) # doesn't work
Project.where(:user_ids.includes => @user.id) # not such method
Project.where(:user_ids => [@user.id]) # doesn't make sense to compare arrays, but tried anyway and doesn't work
我知道你可以在 User 模型中有另一个字段来存储 project_ids,我很乐意这样做,但我只是好奇,有没有一种方法可以在查找条件中使用,其工作方式类似于 #includes?在红宝石中?