t.decimal "eur", precision: 8, scale: 2
这是我在数据库表中的行(名称是钱包)。如何在 rails 控制台中使用数据填充它?
我努力了
wallet.eur=10
好的,这很容易而且不起作用。
wallet.eur=BigDecimal.new('154.00')
这个抛出类似
=> #<BigDecimal:56cadb8,'0.154E3',9(18)>
但我无法保存它并将保持在 0.0。
有什么想法或建议吗?
t.decimal "eur", precision: 8, scale: 2
这是我在数据库表中的行(名称是钱包)。如何在 rails 控制台中使用数据填充它?
我努力了
wallet.eur=10
好的,这很容易而且不起作用。
wallet.eur=BigDecimal.new('154.00')
这个抛出类似
=> #<BigDecimal:56cadb8,'0.154E3',9(18)>
但我无法保存它并将保持在 0.0。
有什么想法或建议吗?
如果处理货币,money-rails gem 可能值得吗?
或者类似的东西只是使用一个整数并将其存储在便士/美分中并创建助手来显示它。
比使用小数或更差的浮点数要好得多。
使用内置的 rails 工具,查看NumberHelper文档以获取示例。
使用此代码添加迁移:
add_column :items, :price, :decimal, :precision => 8, :scale => 2
然后使用这个方法:
number_to_currency(price, :unit => "€")
如果你有一个 NoMethodError 添加这一行:
include ActionView::Helpers::NumberHelper