85

我正在尝试使用 number_field 方法接受十进制值(美元,因此 12.24 就是一个例子)。

<div class="controls">
  <%= f.number_field :amount, :class => 'text_field' %>
</div>

这只允许我输入整数值。

4

2 回答 2

163

您可以通过为 step 选项添加 Float 来绕过“only Integers”约束:

f.number_field :amount, step: 0.5

更新: 实际上你可以使用值'any'作为步长,它将接受所有浮点数和整数,步长为 1:

f.number_field :amount, step: :any

价格更新:

您可以使用 rails 的助手number_to_currency在 number_field 中显示价格:

f.number_field :amount, value: number_to_currency(f.object.amount.to_f, delimiter: '', unit: ''), step: :any
于 2013-09-19T15:34:11.623 回答
5

对于价格字段,您可以使用:

f.number_field :price, value: @item.price ? '%.2f' % @item.price : nil, min: 0, step: 0.01

即使您允许空白值,它也可以正常工作。

于 2019-08-20T19:45:28.660 回答