我正在开发一个非常基本的购物车系统。

我有一个表items,它的列价格类型为整型。

我在视图中显示包含欧元和美分的价格时遇到了麻烦。在Rails框架中处理货币时,我是否遗漏了一些明显的东西?


当前回答

使用金钱轨道宝石。它在你的模型中很好地处理金钱和货币,也有一堆帮助来格式化你的价格。

其他回答

绝对的整数。

即使BigDecimal技术上存在,1.5仍然会在Ruby中给你一个纯浮点数。

你可以将一些选项传递给number_to_currency(一个标准的Rails 4视图帮助器):

number_to_currency(12.0, :precision => 2)
# => "$12.00"

由Dylan Markow发布

如果有人正在使用Sequel,那么迁移将会是这样的:

add_column :products, :price, "decimal(8,2)"

Sequel忽略了:precision和:scale

续作版本:续作(3.39.0,3.38.0)

我是这样用的:

number_to_currency(amount, unit: '€', precision: 2, format: "%u %n")

当然,货币的符号、精度、格式等都取决于每种货币。

如果你正在使用Postgres(因为我们现在已经是2017年了),你可能想尝试一下他们的:money列。

add_column :products, :price, :money, default: 0