Stuck - 加入3个表,执行功能

时间:2014-08-09 15:22:24

标签: ruby-on-rails activerecord

原谅我作为新手。我有一个围绕以下的多级联接表...

Category
has_many :products

Products
has_many :sales

Sales
belongs_to :product

在该类别中,我希望显示每种畅销产品的清单(由销售数量确定,单独记录)。

我可以在产品页上打印销售总价值OK(这是列sales.sum - 我的列名为sum),但无法打印所有符合类别的产品的完整列表,同时执行总和在每个产品的sales.sum列上运行。

我目前在类别控制器中有这个代码;

 def show
    @all = Category.joins(products: :sales)
 end

我认为这是对的,但我无法得到正确的观点。欣赏这可能不是在SO上提出问题的最佳方式,但尝试了许多不同的方法在我的视图文件中打印它,但确实卡住了。

有人能指出我正确的方向吗?

提前谢谢! : - )

编辑 - 让我更清楚我想要实现的目标......

类别 - >产品 - >销售

想要显示属于Category(按category_id)的每个产品的列表,但要将其列入总Sales列表中({{1}属于产品在product_id表中,列被称为'sum',并显示诸如$ 100 Product 1,$ 50 Product 2,$ 40 Product 1等等的值。

所以,多级联接。

1 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人,终于找到了答案;

<ol>
    <%= @category.products.each do |su| %>
    <li><%= su.name %> <%= su.sales.sum(:sum) %></li>
    <% end %>
</ol> 

希望这有助于其他人!