从带有导轨的两个不同的表中获取结果

时间:2018-06-22 19:10:01

标签: ruby-on-rails has-many-through

我想从另一个表中得到结果。我有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 ...

我们怎么只能得到我想要的结果。

1 个答案:

答案 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 %>