Postgres - вычисление, возвращаемое как строка в Rails - PullRequest
0 голосов
/ 02 апреля 2012

В методе ниже я делаю 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 Ответ

1 голос
/ 02 апреля 2012

приведите значения к числам.

number_to_currency(@order_lines.map{|ol| ol.sku_total.to_f }.sum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...