我想知道是否有更好的方法来检索这些结果:
@product_ids_by_collection = Product.where(collection_id: collection_id).pluck(:id)
@component_ids = ProductComponent.where(product_id: @product_ids_by_collection).pluck(:component_id).uniq
@category_ids = Component.where(id: @component_ids).pluck(:category_id).uniq
return Category.find(@category_ids)
在上文中,我从product
级开始,然后回过头来确定categories
所属的collection
。层次结构如下:
我省略了减少视觉混乱的模型,但如果需要进一步的信息,请告诉我。
答案 0 :(得分:0)
如果我理解正确的关联,那就是:
Category.joins(:components => :products).
where(:products => {:collection_id => collection_id})