Ruby on rails Rails将两个值相乘求和
我有Ruby on rails Rails将两个值相乘求和,ruby-on-rails,Ruby On Rails,我有费用列::数量和单位成本。总费用金额为:数量*单位成本 WO资产有许多:费用 我想在资产索引列表中显示每个资产的总数 这项工作: <% expensetotal = 0 %> <% woasset.expenses.each do |expense| %> <% expensetotal = expensetotal + (expense.quantity.to_i * expense.unitcost) %> &l
费用
列::数量
和单位成本
。总费用金额为:数量*单位成本
WO资产
有许多:费用
我想在资产
索引列表中显示每个资产
的总数
这项工作:
<% expensetotal = 0 %>
<% woasset.expenses.each do |expense| %>
<% expensetotal = expensetotal + (expense.quantity.to_i * expense.unitcost) %>
<% end %>
<td><%= expensetotal %></td>
然后在索引中添加以下内容:
<%= woasset.expenses.sum(:expense_amount)
这应该行得通
<td><%= woasset.expenses.map{|e| e.quantity * e.unitcost}.reduce(:+) %></td>
当然,最好将其提取到模型中
class Woasset
def total_expense
expenses.map{|e| e.quantity * e.unitcost}.reduce(:+)
end
end
<%= woasset.total_expense %>
class资产
def总费用
expenses.map{e | e.quantity*e.unitcost}.reduce(:+)
结束
结束
对包含两个数字的字符串求和意味着什么?在任何情况下,为什么不在创建/更新/保存/任何操作时填写费用总额?您也可以使用聚合函数直接在数据库中执行此操作。您应该对此进行探索,因为一般来说,让数据库工作然后返回答案比获取数据然后在服务器上工作更快。这两种方法都是很好的选择-谢谢
class Woasset
def total_expense
expenses.map{|e| e.quantity * e.unitcost}.reduce(:+)
end
end
<%= woasset.total_expense %>