10

請求書のリストがあります...

@invoices_1_week = Invoice.order("due_date DESC").where("status != 'paid' AND due_date >= ? AND due_date < ?", Date.today, 1.week.from_now)

請求書モデルには合計属性があります。@invoice_1_week コレクションの合計を取得するにはどうすればよいですか?

私はこのようなビューでそれを行うことができることを知っています...

<% week_1_total = 0 %>
<% @invoices_1_week.each do |invoice| %>
  <% week_1_total = week_1_total + invoice.total %>
<% end %>
<%= week_1_total %>

しかし、それを行うためのよりRailsyな方法があるかどうか疑問に思っています。

4

2 に答える 2

26

ActiveRecord のsumメソッドを使用した Rails の方法は次のとおりです。

@invoices_1_week.sum("total")

ここにドキュメントがあります。

于 2012-05-21T20:54:51.830 に答える
0

シンボル表記の使用を検討することをお勧めします

@invoices_1_week.sum(:total)

または一重引用符を使用する

@invoices_1_week.sum('total')

どちらの場合も、属性名は不変です。

于 2018-10-14T09:56:55.173 に答える