2014-02-22 48 views
4

我正在为SpreeCommerce 2.1.3构建一个网站,并且我试图弄清楚如何正确格式化价格。SpreeCommerce价格格式

货币是DKK(丹麦克朗),我期待以下:

  • 1000 => KR。 1.000, -
  • 1000.50 => kr。 1.000,50

施普雷格式化我的价格是这样的:

  • 1000 => kr.1.000,00
  • 1000.50 => kr.1.000,50

因此,有两个问题:

  1. 我需要在kr。和价格。
  2. 如果有任何的arent小数,我想呈现为,小数 - (例如:1.000, - )

如何实现这个目标?

下面是从配置/初始化/ spree.rb我的配置:

Spree.config do |config| 
    # [...] 
    config.currency = "DKK" 
    config.currency_symbol_position = "before" 
    config.currency_decimal_mark = "," 
    config.currency_thousands_separator = "." 
end 

解决方案:

1)我加入这个装饰到狂欢::钱(来代替,00 , - ):

Spree::Money.class_eval do 
    def to_s 
    formatted = @money.format(@options) 
    formatted.gsub(/,00$/, ",-") 
    end 

    def to_html(options = { :html => true }) 
    to_s 
    end 
end 

2)我在初始化配置丹麦货币(添加的空间):

Money::Currency.register({ 
    :priority  => 1, 
    :iso_code  => "DKK", 
    :iso_numeric  => "208", 
    :name   => "Danish krone", 
    :symbol   => "kr. ", 
    :subunit   => "Øre", 
    :subunit_to_unit => 100, 
    :separator  => ".", 
    :delimiter  => "," 
}) 

回答