【发布时间】:2021-08-31 01:50:39
【问题描述】:
我希望帮助器中有两个值是根据 Active Record 数据计算的,它们显示在同一个视图中,“gross_income_upload”和“all_time_gross”。 总收入还可以,但没有显示所有时间的总整数,而是显示的是 Active Record 数组数据。
有一个辅助函数和一个 .erb 视图,代码如下:
应用程序助手(application_helper.rb):
module ApplicationHelper
def gross_income_upload
if Sale.any?
gross_income_upload = Sale.last.purchase_count*Sale.last.item_price
else
gross_income_upload = 0
end
end
def all_time_gross
if Sale.any?
all_time_gross = 0
sales = Sale.all
sales.each do |sale|
all_time_gross = all_time_gross + sale.purchase_count*sale.item_price
end
else
all_time_gross = 0
end
end
end
用户信息视图(_user_info.html.erb):
<h1>Gross income uploaded: R$<%= gross_income_upload %></h1>
<h2>All time gross: R$<%= all_time_gross %></h2>
变量“gross_income_upload”中的最后总收入是最后一次销售的收入,在函数中计算如下:
gross_income_upload = Sale.last.purchase_count*Sale.last.item_price
上传的总收入还可以,“gross_income_upload”为“R$20.0”,在视图中呈现良好。
Gross income uploaded: R$20.0
另一个值“all_time_gross”不合适。
预期的结果是循环内的计算,'all_time_gross' 是由 sale purchase_count 乘以数据库中每个条目的 item_price 的总和:
sales.each do |sale|
all_time_gross = all_time_gross + sale.purchase_count*sale.item_price
视图中的值不是整数,而是 Active Record 数组数据:
All time gross: R$[#<Sale id: 1, purchaser_name: "João Silva", item_description: "R$10 off R$20 of food", item_price: 10.0, purchase_count: 2, merchant_address: "987 Fake St", merchant_name: "Bob's Pizza\n", created_at: "2021-08-30 03:11:57.639361000 +0000", updated_at: "2021-08-30 03:11:57.639361000 +0000">, #<Sale id: 2, purchaser_name: "Amy Pond", item_description: "R$30 of awesome for R$10", item_price: 10.0, purchase_count: 5, merchant_address: "456 Unreal Rd", merchant_name: "Tom's Awesome Shop\n", created_at: "2021-08-30 03:11:58.496490000 +0000", updated_at: "2021-08-30 03:11:58.496490000 +0000">, #<Sale id: 3, purchaser_name: "Marty McFly", item_description: "R$20 Sneakers for R$5", item_price: 5.0, purchase_count: 1, merchant_address: "123 Fake St", merchant_name: "Sneaker Store Emporium\n", created_at: "2021-08-30 03:11:58.593304000 +0000", updated_at: "2021-08-30 03:11:58.593304000 +0000">, #<Sale id: 4, purchaser_name: "Snake Plissken", item_description: "R$20 Sneakers for R$5", item_price: 5.0, purchase_count: 4, merchant_address: "123 Fake St", merchant_name: "Sneaker Store Emporium\n", created_at: "2021-08-30 03:11:58.696714000 +0000", updated_at: "2021-08-30 03:11:58.696714000 +0000">]
【问题讨论】:
标签: ruby-on-rails variables activerecord view block