我想在 rails 中获取设施列表属于该场所的所有场所

I want to get all venues where list of amenities belongs to that venue in rails

我真的不知道如何查询以获取用户检查的便利设施列表属于该场所的所有特定场所。

例子。我有一个显示设施的复选框列表,如果我选中游泳池、台球池、健身房和迪斯科舞厅,它将显示属于该设施的场地列表。

我的联想是这样的:

型号

venue
categorization
amenity

协会

Venue.rb

has_many :categorizations
has_many :amenities, through: :categorizations

Amenity.rb

has_many :categorizations
has_many :venues, through: :categorizations

Categorization.rb

belongs_to :venue
belongs_to :amenity

试试这个:

@amenity = Amenity.find(id)
@venues = @amenity.venues

如果您有多个便利设施并想找到所有场所,您可以这样做:

selected_amenity_ids = [1,2,3]
@venues = Venue.joins(:amenities).where(:amenities => {:id => selected_amenity_ids})

这将产生一个包含两个 INNER JOINS 的 SQL 查询。