Ruby on Rails:如何选择所有至少有 1 个公司和公司类别的城市 == 14

Ruby on Rails: How to select all Cities which have at least 1 company and company category == 14

提问人:whitemystyle 提问时间:6/15/2022 最后编辑:jarlhwhitemystyle 更新时间:6/15/2022 访问量:47

问:

如何选择所有至少有 1 家公司和公司类别的城市 == 14.

City.includes(:companies).where('companies.category_id' => @category.id)

协会

City    
has_and_belongs_to_many :categories   
has_and_belongs_to_many :companies 

Company   
has_and_belongs_to_many :categories   
has_and_belongs_to_many :cities 

Category   

has_and_belongs_to_many :companies   
has_and_belongs_to_many :cities
Ruby-on-Rails(红宝石轨道)

评论


答:

0赞 Yurii Stefaniuk 6/15/2022 #1

如果您按照惯例建议实现了所有关联,并且您有这些表: 和 您可以使用以下查询来完成此操作:cities_companiescategories_companies

City.distinct.joins(companies: :categories).where(categories: { id: @category.id })