Rails模型属性显示为符号

时间:2015-10-07 16:26:45

标签: ruby-on-rails activerecord

我有一个名为ExpenseRatio的rails模型。我正在尝试访问模型中的特定记录,并且其字段的值名为calculated_expense_ratio(这是数据库中的小数)。

    xr = ExpenseRatio.find(xr_id)

    @po = MyAPI.ViewPO(po_id)

    items = Array.new
    @po["PurchaseOrderLineItems"].each do |lip|
        lip.each do |li|
            if li["id"].to_i > 0
                new_price = xr.calculated_expense_ratio * li["price"]
                items.push([id: li["id"].to_i,iprice: li["price"], xrid: xr_id, price: new_price,xrv: xr.calculated_expense_ratio])
            end
        end
    end

这是lib文件夹中外部模块中的所有代码。 xr.calculated_expense_ratio不会在记录中输出实际的十进制值,而是看起来像符号上的完整符号:

#<BigDecimal:7f9883d1cd38,'0.42E1',18(45)>

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

这不是一个符号,它是一个BigDecimal对象。我猜你正在使用MySQL作为你的数据库而你的列的类型是DECIMALBigDecimal是类似于float的ruby对象,但允许更高的精度。请参阅以下内容:

http://makandracards.com/makandra/1178-bigdecimal-arithmetic-in-ruby