我想从另一个表中得到结果。我有4张桌子。像那样::
产品,类别,地区,product_categories Product.joins(:product_categories, :categories, :regions).includes(product_categories: [:region]).includes(product_categories: [:categories]).where("product_categories.region_id = 1").select("product.name, category.name").group("product.name, category.name")
我正在使用has_many:通过协会
结果必须是 product_name,category_name
1- Computer, Furniture
2- Computer, Tools
3- Computer, Gadgets
4- Mouse, Gadgets
5- Mouse, Tools
但是我得到了
这样的产品模型1- Computer, computer_id ....
2- computer, computer_id ...
我们怎么只能得到我想要的结果。
答案 0 :(得分:0)
我不知道这是否与您的列完全匹配,但它应该可以工作。另外,不清楚为什么需要联接四个表。也许我想念一些东西。无论如何,至少可以给您一个提示。我使用的是与众不同的产品,但可以根据需要进行更改。
@products =
Product.joins(:categories, :product_categories)
.select('products.name AS product_name, categories.name AS category_name, product_categories.region_id')
.where('product_categories.region_id = 1')
.distinct
<% @products.each do |product| %>
<p><%= product.product_name %> | <%= product.category_name %></p>
<% end %>