2014-02-22 73 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  => "," 
}) 

回答