Ruby on rails 十进制/浮点数组轨道的输出和
我有以下内容,我以为可以得到数组的和,但没有:Ruby on rails 十进制/浮点数组轨道的输出和,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有以下内容,我以为可以得到数组的和,但没有: <% @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
<% @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 %>
我得到了nilclass的未定义的方法+
,它不是nil,但显然我缺少了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 %>
这是我如何让它在阵列中工作的方法
reduce
,该阵列设计用于降低收集价值:
array.compact.reduce(:+)
# => Sum of array
有关寻求调试帮助的问题(“此代码为什么不工作?”)的详细信息必须包括所需的行为、特定问题或错误以及在问题本身中重现这些问题所需的最短代码。请参阅:。将代码移出视图代码,在
顺序中提供最少的输入数据。是的,我正要评论,看起来您正在对内部映射进行求和,而不是对外部映射进行求和。很高兴你明白了!
array.compact.reduce(:+)
# => Sum of array