【问题标题】:form not saving to database in rails表单不保存到rails中的数据库
【发布时间】:2011-09-06 22:47:13
【问题描述】:

我目前有一个表格:

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

我将迁移从使用浮点数更改为使用十进制数:

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

在我看来,我是这样称呼它的:

<%= @object.price %> 

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

【问题讨论】:

    标签: ruby-on-rails migration currency bigdecimal


    【解决方案1】:

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

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

    如果您的表中有正确的列类型,请检查您是否在 Object 类中使用了 attr_accessible(并且包含 price)。

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

    编辑 number_to_currency可以在您的成本前加上一个 $,确保您输入的价格之前没有任何货币,否则我相信这也会导致 0.0(无法解析十进制 '$123.00',但可以解析 ' 123.00'

    【讨论】:

    • 嗨,克里斯蒂安,谢谢。对象只是一个例子。我确实有 attr_accessible 包含价格。正如您所提到的,由于我的价格前面的 $ 符号无法解析。当我在没有美元符号的情况下输入它时,它起作用了!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 2016-05-18
    • 2019-01-22
    相关资源
    最近更新 更多