2013-10-17 67 views
5

我正在將spree升級到spree 1.0到1.3,並陷入新的貨幣選項。在Spree中更改產品價格的貨幣格式

我想渲染價格爲'100歐元',而是'100歐元'。如何在單位和價值之間獲得空間?

注意:更改區域設置文件不起作用,因爲它使用錢寶石。

回答

5

有很多方法可以做到這一點。最簡單的可能是用不同的符號重新註冊歐元。

把下面的在初始化:

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

一個Rails控制檯現在報道:

> Spree::Money.new(100, currency: 'EUR') 
=> € 100.00 
0

非常感謝。 在我的情況下,使用以下命令來更改由to_html方法生成的符號,以防任何人遇到同樣的問題。

# encoding: utf-8 
Money::Currency.register({ 
    :priority  => 1, 
    :iso_code  => "CLP", 
    :iso_numeric  => "152", 
    :name   => "Chilean Peso", 
    :symbol   => "$", 
    :subunit   => "Peso", 
    :subunit_to_unit => 1, 
    :separator  => ",", 
    :delimiter  => ".", 
    html_entity: "$" 
}) 
1

我做我的config/initializers/spree.rb以下注入不同的符號:

Money::Currency.table[:chf].merge!(symbol: 'CHF ') 

這樣的貨幣都不會混淆。

0

我在初始化程序中解決了以下問題,例如: config/initializers/currency_formatting.rb

# Display prices with a space between symbol and number: 
Spree::Money.default_formatting_rules[:symbol_before_without_space] = false 

此鉤入在Spree::Money發現格式化規則,其可以控制所有formatting Options of the Money Gem,包括一個將所述符號和數字之間的空間。這比這裏介紹的其他解決方案具有優勢,它可以同時用於所有貨幣。