Rails number_field替代十进制值

时间:2013-09-19 15:31:17

标签: ruby-on-rails

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

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

这只允许我输入整数值。

2 个答案:

答案 0 :(得分:118)

您可以通过为步骤选项添加Float来绕过“仅整数”约束:

f.number_field :amount, :class => 'text_field', :step => 0.5

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

f.number_field :amount, class: :text_field, step: :any

价格更新:

您可以使用rails'helper number_to_currency在number_field中显示价格:

f.number_field :amount, value: number_to_currency(f.object.amount.to_f, delimiter: '', unit: ''), step: :any

答案 1 :(得分:2)

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

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

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