【问题标题】:Convert a column's value when displaying in an Edit view在编辑视图中显示时转换列的值
【发布时间】:2011-07-15 08:05:13
【问题描述】:

所以,我的主题行并没有解决我的问题,但这是我需要的:

我的产品模型中有一个价格字段。

这是我使用的表单域,它只是一个普通的表单域:

<%= f.label :price, "Price: Use numbers and a decimal only. E.g., 34.00" %><br />
<%= f.text_field :price, :style => "width: 50px" %>

我将这个小数转换为整数,然后再将其保存到数据库中,这是因为我稍后必须对其进行一些数学运算,而且整数比处理浮点数学更容易添加。

但是,当用户再次进入编辑此字段时,它会在文本字段中显示为整数或 3400

我如何告诉f.text_field 改为显示浮点值?

我的 google fu 已关闭,因此感谢您提供任何帮助。

【问题讨论】:

  • 价格在数据库中是什么数据类型?
  • 整数是数据类型。浮点数不是为数学设计的,我想这次我会试试整数数学的运气。

标签: ruby-on-rails forms partials


【解决方案1】:

&lt;%= f.text_field :price, :value =&gt; @product.price.to_f %&gt;

【讨论】:

  • 该死的,这很容易。完全忽略了这一点。为了重用表单字段,我只是将其修改为&lt;%= f.text_field :price, :value =&gt; (@product.price.to_f unless @product.new_record?) %&gt;。为了清理它,我也会将它放在帮助程序中,但无论如何,这就是我所做的。
【解决方案2】:

出于这个原因,我喜欢在用户输入数据时将数据保留在数据库中。您能否添加另一列来表示要用于后面的数学的整数值?

【讨论】:

  • 我无法选择你的作为官方答案,但我用你的方法帮助我摆脱了困境,但格雷格的实际显示正确。所以换句话说,我创建了一个attr_accessor :input_price,并将其转换为我在数据库中的价格作为整数,然后在视图中我 deconvert_price,我可能应该有这个逻辑,就像在我的应用程序中一样,在幕后它是总是一个整数,但在应用程序的“前面”,他们会看到浮动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多