表单不保存到rails中的数据库

时间:2011-09-06 22:47:14

标签: ruby-on-rails migration currency bigdecimal

我目前有一张表格:

<%= f.label(:price) %> <br/>
<%= f.text_field(:price, :value => number_to_currency(@object.price)) %>

我将迁移从使用float更改为使用decimal:

change_column :object, :price, :decimal, :precision => 5, :scale => 2 

在我看来,我用它来调用它:

<%= @object.price %> 

出于某种原因,每当我对表单或控制台进行更改时,它都不会保存该值并将其保持在$ 0.00,无论我将其更改为什么。在视图中,它始终显示为“0.0”。我不确定问题是什么。

1 个答案:

答案 0 :(得分:0)

您是否有一个名为objectobjects的表格,或者这只是一个示例?

如果没有,请检查价格列以确保迁移正常。

如果表格中确实有适当的列类型,请检查attr_accessible类中是否使用Object(并且包含price)。

此外,如果您使用Object作为您的班级名称,您可能会在此处遇到其他一些问题,我会建议不要这样做。

修改 number_to_currency可能会在您的费用前加上一个$,确保您在没有任何货币之前输入您的价格,否则我认为这也会导致0.0(无法解析十进制'$ 123.00',但可以解析'123.00'