Rails - 模型更新十进制 - 从数据库中呈现舍入值

时间:2011-03-13 00:04:23

标签: ruby-on-rails database rounding

我的模型商品中有一个名为label_length的十进制字段,带有一个小数位。保存到数据库中时,该值将被舍入。

记录已存储在数据库中。我在我的Offer模型的编辑表单中。现在我将123.45放入文本字​​段并点击按钮。保存后,我再次使用文本字段渲染编辑操作。在label_length的文本字段中,我再次找到值123.45,尽管123.5存储在数据库中。

调用offer.update_attributes(params [:offer])后,控制器中的@offer似乎没有更新

有没有办法显示当前的数据库值?

由于 马克

1 个答案:

答案 0 :(得分:1)

您的迁移是什么样的?您可以提示Rails在迁移中创建一个具有设置比例和精度的十进制字段,以便您没有意外舍入的值:

t.decimal :amount,  :precision => 6, :scale => 2

为了让Rails在保存后使用数据库中的数据,您只需添加对reload的调用,如下所示:

if @offer.save
  @offer.reload
  ...
else
  ...
end