0

默认情况下,金钱以美分为单位保存价值并创建像 price_cents:integer 这样的迁移。我需要以 minidollars(货币的 1/1000)保存和计算价值。

我自己不注册货币。我使用 gem google_currency 获取当前货币汇率。

如何为所有货币值设置精度 1/1000?

  * rails (4.2.1)
  * money (6.5.1)
  * money-rails (1.4.1)
  * google_currency (3.2.0)
4

1 回答 1

0

根据文档,您可以注册自己的子单元:

curr = {
  :priority        => 1,
  :iso_code        => "USD",
  :iso_numeric     => "840",
  :name            => "United States Dollar",
  :symbol          => "$",
  :subunit         => "Minidollar",
  :subunit_to_unit => 1000,
  :separator       => ".",
  :delimiter       => ","
}

Money::Currency.register(curr)

Google Currency 只是 extends Money::Bank::VariableExchange,所以现在你要创建一个 1 美元的项目并获得欧元的价值:

money = Money.new(10_00, "USD") # this is in "minidollars"
money.exchange_to(:EUR)
于 2015-05-22T12:56:17.840 回答