[ruby-on-rails] 십진수 값에 대한 Rails number_field 대안

number_field 메서드를 사용하여 10 진수 값 (USD이므로 12.24가 예가 됨)을 허용하려고합니다.

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

이렇게하면 정수 값만 입력 할 수 있습니다.



답변

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


답변

가격 필드의 경우 다음을 사용할 수 있습니다.

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

빈 값을 허용하더라도 제대로 작동합니다.


답변