I'm trying to accept a decimal value (USD, so 12.24 would be an example) with the number_field method.
<div class="controls">
<%= f.number_field :amount, :class => 'text_field' %>
</div>
This only allows me to enter integer values.
You can bypass the "only Integers" constraint by adding a Float for the step option:
f.number_field :amount, step: 0.5
Update: Actually you can use the value 'any' for the step, it will accept all floats and integers, and the step will be 1:
f.number_field :amount, step: :any
Update for prices:
You can use the rails' helper number_to_currency
to display a price inside a number_field:
f.number_field :amount, value: number_to_currency(f.object.amount.to_f, delimiter: '', unit: ''), step: :any
For price fields you can use this:
f.number_field :price, value: @item.price ? '%.2f' % @item.price : nil, min: 0, step: 0.01
It works fine even if you allow blank values.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With