狂欢/固体:格式货币在价格之前显示符号,空格为“€99”

时间:2016-08-31 07:04:05

标签: ruby-on-rails spree solidus

我使用Rails 4和Solidus 1.2 如何格式化价格,使货币符号前面有一个空格,如“€99”?

Spree / Solidus使用Ruby Money Gem来处理货币,我在https://github.com/RubyMoney/money/blob/master/lib/money/money/formatting.rb中看到有一个配置选项

Spree::Money.default_formatting_rules[:symbol_before_without_space] = true 

但没有Spree :: Money.default_formatting_rules [:symbol_before_with_space] = true

在我的初始化程序中:

# config/initializers/spree.rb

Money::Currency.register({
  :priority        => 1,
  :iso_code        => "EUR",
  :iso_numeric     => "978",
  :name            => "Euro",
  :symbol          => "€",
  :subunit         => "Cent",
  :subunit_to_unit => 100,
  :separator       => ".",
  :delimiter       => ","
})

我还尝试在我的本地化文件中格式化,例如de.yml:

---
de:
  number:
    currency:
      format: "%u %n"

但价格格式仍然是“104,90€”而不是“€104,90”。

我不想进行字符串插值来格式化货币。是否有我缺少的配置选项?

2 个答案:

答案 0 :(得分:2)

好吧,这很令人尴尬,但我只需要设置

Spree::Money.default_formatting_rules[:symbol_before_without_space] = false

获得我想要的格式。

答案 1 :(得分:0)

您需要做

self.plkFig.savefig('tmp.png', bbox_inches='tight', dpi=self.plkDpi)