获取并汇总所有关联的数据

时间:2019-08-09 18:58:19

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

我有2个模型。公司和订单。公司有很多订单。订单表具有数量列。 我需要获取订单并汇总每个公司的所有数量。

下面的代码不起作用。

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

1 个答案:

答案 0 :(得分:1)

p.orders访问关联的表。该代码无法正常工作的原因:获取相关记录后,您必须遍历每个记录以累加它们的数量。

这是做到这一点的一种方法。

p.orders.sum(&:quantity)