ruby-on-rails - 十进制/浮点数组导轨的输出总和
问题描述
我有以下我认为可以让我得到数组的总和但没有:
<% @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 如何工作的因素。
解决方案
<%= @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 %>
我是如何让它工作的
推荐阅读
- node.js - 在 Linux 服务器上运行时,Puppeteer 页面 javascript 不会加载
- c# - 使用 XML 数据进行操作
- c# - 使用两个会话重定向到登录页面
- java - String 类中 split 方法的正则表达式,按条件拆分文本
- cassandra - 如何对 Apache Cassandra 支持的 Janusgraph 数据库进行备份和恢复?
- quic - HTTP/3 及其影响
- java - AOP 切入点仅适用于带注释的方法
- azure-machine-learning-service - POST 请求失败,大数据发送到部署在 Azure 容器上的模型
- c++ - C++中从客户端到服务器的数据传输问题
- anaconda - Windows 10:Jupyter 笔记本未启动