我想在 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 查询。
我真的不知道如何查询以获取用户检查的便利设施列表属于该场所的所有特定场所。
例子。我有一个显示设施的复选框列表,如果我选中游泳池、台球池、健身房和迪斯科舞厅,它将显示属于该设施的场地列表。
我的联想是这样的:
型号
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 查询。