Postgres - 计算在Rails中作为字符串返回

时间:2012-04-02 01:45:23

标签: ruby-on-rails postgresql

在下面的方法中,我做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"]

所以它认为它们是字符串,只是将它们拼接在一起而不是添加它们。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

将值转换为数字。

number_to_currency(@order_lines.map{|ol| ol.sku_total.to_f }.sum)