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

[解決済み] 通貨/お金の取り扱いについて、最適な方法を教えてください。

2022-03-17 14:20:58

質問

私は非常に基本的なショッピングカートシステムに取り組んでいます。

テーブルがあります items カラムを持つ price 型の integer .

ユーロとセントの両方を含む価格について、ビューに価格値を表示するのに苦労しています。Railsフレームワークでの通貨の扱いに関して、私は何か明らかなことを見逃しているのでしょうか?

解決方法は?

おそらくは DECIMAL という型をデータベースで使用することができます。マイグレーションでは、以下のようにします。

# precision is the total number of digits
# scale is the number of digits to the right of the decimal point
add_column :items, :price, :decimal, :precision => 8, :scale => 2

Railsでは :decimal という型が返されます。 BigDecimal これは価格計算には最適です。

どうしても整数を使いたい場合は、手作業で BigDecimal を使うのが面倒になったのでしょう。

mclさんご指摘の通り、価格を表示するには、use:

number_to_currency(price, :unit => "€")
#=> €1,234.01