如何在simple_form数字字段(Rails)中指定小数精度

时间:2012-07-09 18:24:08

标签: ruby-on-rails decimal simple-form

所以我在数据库中有一个精度为2的十进制字段,用于货币。它工作正常,除非最后一个小数位以0结尾,即。 799.90。它将在字段中显示时将其剥离为799.9。我知道number_with_precision,但是我无法将该帮助方法与simple_form数字字段一起使用,因为它只需要一个符号和html选项作为参数。

我认为我需要创建一个自定义输入来扩展simple_form的默认number_field,但语法似乎没有很好地记录,所以我无法弄清楚如何调用{{1在这个自定义输入的定义中。

我基本上想要用formtastic来做这个问题的Formtastic number field with decimal precision?想要的OP。谢谢!

2 个答案:

答案 0 :(得分:31)

如果您可以使用formtastic进行,您通常可以根据我的经验使用Simple Form。试试这个:

<%= f.input :sales_price, :input_html => {value: number_with_precision(f.object.sales_price, precision: 2) } %>

如果使用input_field,则不需要:input_html

<%= f.input_field :sales_price, value: number_with_precision(f.object.sales_price, precision: 2) %>

答案 1 :(得分:0)

使用输入的step属性:

<input type="number" step="0.01">

或采用简单形式:

<%= f.input :sales_price, input_html: { step: 0.0 } %>