在下面的方法中,我做ol.price * ol.committed。价格是小数(40.00)
def self.find_for_order(order)
if order
select("ol.*, p.name as name, (ol.price * ol.committed) as sku_total, p.price as price, p.style_number AS product_style_number, p.name").
from("order_lines ol").
joins("LEFT JOIN skus s ON s.sku_number = ol.style_number").
joins("LEFT JOIN products p ON p.id = s.product_id").
where("ol.order_id = #{order}").
group("ol.id, p.price, product_style_number, name, ol.style_number")
end
end
在我看来,我有这个:
number_to_currency(@order_lines.map(&:sku_total).sum)
结果如下:
$500,400.00
如果我对它进行检查,我会得到这个:
["500", "400"]
所以它认为它们是字符串,只是将它们拼接在一起而不是添加它们。任何想法如何解决这个问题?
答案 0 :(得分:1)
将值转换为数字。
number_to_currency(@order_lines.map{|ol| ol.sku_total.to_f }.sum)