Rails 带有多对多 where 子句的 Mongoid 搜索

Rails Mongoid search with many-to-many where clause

我有 "Vaga":

vaga.rb

class Vaga
  include Mongoid::Document

  has_and_belongs_to_many :areas, autosave: true

结果:

#<Vaga _id: 5524940d706f6c09180c0000, area_ids: [BSON::ObjectId('5524939b706f6c09180b0000'), BSON::ObjectId('5436721b706f6c0918cf0000')], titulo: "Ruby on Rails developer">

和"Area" area.rb

class Area
  include Mongoid::Document

  has_and_belongs_to_many :vagas

如何使用 "areas" 数组获取所有 "vagas"?

我正在尝试这个:

vagas = Vaga.all('areas.id' => '5524939b706f6c09180b0000')

但是不行

你可以试试这个

vagas = Vaga.where(area_ids: ['5524939b706f6c09180b0000'])

area = Area.where(id: '5524939b706f6c09180b0000').first
vagas = area.vagas

希望对您有所帮助!