首页 > 解决方案 > 十进制/浮点数组导轨的输出总和

问题描述

我有以下我认为可以让我得到数组的总和但没有:

<% @orders.each do |order| %>
   <% if Product.exists?(sku: order.line_items.where().map {|li| li.sku }) %>
      <%= order.line_items.where(vendor_name: @vendor.vendor_name).map do |li| %>
          <% if Product.exists?(sku: li.sku) %>
              <% product = Product.find_by(sku: li.sku ) %>
              <% ((li.store_price.to_d * li.store_fulfillable_quantity) - (product.production_price * li.store_fulfillable_quantity)) * (0.70) %>
          <% end %>
       <% end.compact.sum %>
   <% end %>
<% end %>

输出类似于:

25.21 25.21 12.66 5.33 12.66 9.01

我需要添加这些数字。我怎样才能用小数/浮点数做到这一点?

当我使用

<%= @orders.each do |order| %>

我得到undefined method + for nilclass了上线的那条线,它不是零,但显然我错过了一些关于 sum 如何工作的因素。

标签: ruby-on-railsruby

解决方案


<%= @orders.map do |order| %>
   <% if Product.exists?(sku: order.line_items.where().map {|li| li.sku }) %>
      <% order.line_items.where(vendor_name: @vendor.vendor_name).map do |li| %>
          <% if Product.exists?(sku: li.sku) %>
              <% product = Product.find_by(sku: li.sku ) %>
              <% ((li.store_price.to_d * li.store_fulfillable_quantity) - (product.production_price * li.store_fulfillable_quantity)) * (0.70) %>
          <% end %>
       <% end.compact.sum %>
   <% end %>
<% end.compact.sum %>

我是如何让它工作的


推荐阅读