我的模特
class Person
embeds_many :skills, class_name: "PersonSkill"
class Project
embeds_many :skills, class_name: "ProjectSkill"
class Skill
belongs_to :tag # Tag class is irrelevant for my question I think
field :tag_name # Assume it's synchronised with tag.name
class PersonSkill < Skill
embedded_in :person
class ProjectSkill < Project
embedded_in :project
现在我需要构建一些查询/范围。这个想法是项目有很多技能,项目经理希望能够找到拥有这些技能的人员名单
基本上:一些技能[技能A,技能B,技能C]与项目A相关联。项目经理希望找到人员
是否有可能定义一些很好的mongoid范围,让我可以轻松地做到这一点?
我查看了this question,我提出了以下范围,但它只涵盖了上面提到的3个案例中的一个。
scope :with_skills, ->(tag_ids){where('competences.tag_id' => {'$in' => tag_ids})}