Rails number_field替代十进制值

我试图用number_field方法接受一个十进制值(USD,所以12.24就是一个例子)。

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

这只允许我input整数值。

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

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

更新:实际上你可以使用“任何”值的步骤,它将接受所有的浮点数和整数,步骤将是1:

 f.number_field :amount, class: :text_field, 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