この編集フォームがあります。
しかし、1.5などを保存するときは、1.50と表示したいと思います。
フォームヘルパーでどうすればいいですか? <%= f.text_field :cost, :class => 'cost' %>
number_with_precision
ヘルパーを使用する必要があります。 ドキュメントを参照 。
例:
number_with_precision(1.5, :precision => 2)
=> 1.50
フォームヘルパー内で:
<%= f.text_field :cost, :class => 'cost', :value => (number_with_precision(f.object.cost, :precision => 2) || 0) %>
ところで、本当に価格を表示したい場合は、number_to_currency
、docの同じページを使用します(フォームコンテキストでは、number_with_precision
を保持します。お金のシンボルを台無しにしたくありません)
または、フォーマット文字列"%.2f" % 1.5
を使用できます。 http://Ruby-doc.org/docs/ProgrammingRuby/html/ref_m_kernel.html#Kernel.sprintf
このために、number_to_currencyフォーマーを使用します。私は米国にいるので、デフォルトはうまく機能します。
<% price = 45.9999 %>
<price><%= number_to_currency(price)%></price>
=> <price>$45.99</price>
デフォルトが機能しない場合は、オプションを渡すこともできます。 api.rubyonrails.org で利用可能なオプションのドキュメント
Railsには number_to_currency ヘルパーメソッドがあり、特定のユースケースにより適しています。