Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails将两个值相乘求和_Ruby On Rails - Fatal编程技术网

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 %>