1. ホーム
  2. ruby-on-rails

[解決済み] Rails の number_field で小数の値を使用する場合の代替方法

2023-06-22 18:20:38

質問

number_fieldメソッドで10進数の値(USDなので12.24が例です)を受け取ろうとしています。

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

これだと整数値しか入力できない。

どのように解決するのですか?

ステップオプションにFloatを追加することで、"only Integers"の制約を回避することができます。

f.number_field :amount, step: 0.5


更新しました。 実際には、ステップに'any'という値を使用することができます。

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