【发布时间】:2014-10-13 05:27:56
【问题描述】:
我正在构建一个简单的发票应用程序。我有一个发票模型,它有 :items 和 :items belongs_to :invoice。
就模型架构而言,:invoices 只是有一个用于存储标题的列,而 :items 负责所有(定价)金额和数量的详细信息。
我有一个发票索引,其中显示了发票列表及其“总金额”。每张发票的总金额是通过我在项目模型中设置的“quantity_amount_sum”方法确定的,该方法获取发票的所有项目并将数量乘以金额以确定发票上所有项目的总和。
模型:item.rb
def quantity_amount_sum
return self.quantity * self.amount
end
index.html.erb
<% @invoices.each do |invoice| %>
$<%= invoice.item_amount.sum.floor %>
<% end %>
模型发票.rb
def item_amount
@@item_amount = self.items.map(&:quantity_amount_sum)
end
问题在于尝试总结索引页面的“总计”(例如:两张发票,每张都有一个项目总和。发票 #1 总计 100 美元,发票 #2 总计 200 美元。然后我想要一个“总”发票,应为 300 美元)。我已经尝试使用“each do”来遍历每张发票的总数,但我只能检索最后一张发票的总和,而不能将两者结合起来。
$<%= @invoices.total_val.each.sum %>
模型发票.rb
def self.total_val
@@item_amount
end
这将仅生成最后一张发票的总和(或 200 美元),而总数应为 300 美元。
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller