간단한 인보이스 앱을 만들고 있습니다. 나는 has_many : items 및 : items belongs_to : invoice라는 송장 모델을 가지고있다.반복하여 합계를 얻으십시오.
모델 스키마가 진행되는 한 : : 송장에는 제목을 저장하기위한 열과 항목이 모든 (가격 책정) 금액과 수량 세부 정보를 처리합니다.
인보이스 목록이있는 "인보이스"색인이 있으며 "총 금액"과 함께 표시됩니다. 각 송장의 총 금액은 송장의 모든 항목을 소요 금액으로 곱하여 송장의 모든 항목의 합계를 결정하는 항목 모델에서 설정 한 "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 %>
모델
def item_amount
@@item_amount = self.items.map(&:quantity_amount_sum)
end
invoice.rb 문제는 그 다음 "는 정리해 노력에 총액 "(예 : 두 개의 인보이스, 항목의 합계가 각각 인보이스 # 1, 인보이스 # 2, 인보이스 # 2, 총액 $ 200) 총 송장 수는 300 달러). 나는 "each do"를 총계로 사용하여 각 인보이스를 반복 해 보았습니다 만, 마지막 인보이스의 합계 만 검색 할 수 있었지만 둘을 합친 적이 없었습니다.
$<%= @invoices.total_val.each.sum %>
합계가 $ 300이어야한다 반면이, 마지막 송장 (또는 $ (200))의 합을 생산하는 것
def self.total_val
@@item_amount
end
모델 invoice.rb. 이것에
<% @invoices.each do |invoice| %>
$<%= invoice.item_amount.sum.floor %>
<% end %>
: 당신은 당신이 줄 변경할 수 있습니다 모두 송장의 총 합을 원하는 경우에