首页 > 解决方案 > 获取并汇总所有关联的数据

问题描述

我有2个模型。公司和订单。公司有很多订单。Orders 表有一个数量列。我需要获取订单并将属于每个公司的所有数量相加。

下面的代码不起作用。

class Company < ApplicationRecord
  has_many :orders
  belongs_to :payment_method
end
class Order < ApplicationRecord
  validates :company_id, presence: true
  validates :quantity, presence: true
  belongs_to :company
end
<%  @companies.each do |p| %>
  <p><%=  p.orders.quantity.sum %></p>
<%  end %>

标签: ruby-on-railsrubyruby-on-rails-5

解决方案


p.orders访问关联的表。此代码不起作用的原因:在获取关联记录后,您必须遍历每个记录以将它们的数量相加。

这是一种方法。

p.orders.sum(&:quantity)

推荐阅读