我正在將spree升級到spree 1.0到1.3,並陷入新的貨幣選項。在Spree中更改產品價格的貨幣格式
我想渲染價格爲'100歐元',而是'100歐元'。如何在單位和價值之間獲得空間?
注意:更改區域設置文件不起作用,因爲它使用錢寶石。
我正在將spree升級到spree 1.0到1.3,並陷入新的貨幣選項。在Spree中更改產品價格的貨幣格式
我想渲染價格爲'100歐元',而是'100歐元'。如何在單位和價值之間獲得空間?
注意:更改區域設置文件不起作用,因爲它使用錢寶石。
有很多方法可以做到這一點。最簡單的可能是用不同的符號重新註冊歐元。
把下面的在初始化:
# 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
非常感謝。 在我的情況下,使用以下命令來更改由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: "$"
})
我做我的config/initializers/spree.rb
以下注入不同的符號:
Money::Currency.table[:chf].merge!(symbol: 'CHF ')
這樣的貨幣都不會混淆。
我在初始化程序中解決了以下問題,例如: 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,包括一個將所述符號和數字之間的空間。這比這裏介紹的其他解決方案具有優勢,它可以同時用於所有貨幣。