2013-10-17 2 views
5

Ich aktualisiere Spree von Spree 1.0 bis 1.3 und bleibe bei den neuen Währungsoptionen stecken.Ändern des Währungsformats für Produktpreise innerhalb von Spree

Ich möchte die Preise wie folgt darstellen: "100 €", sondern stattdessen "100 €". Wie bekomme ich einen Abstand zwischen der Einheit und dem Wert?

Hinweis: Das Ändern der Gebietsschema-Datei funktioniert nicht, da das Geld-Juwel verwendet wird.

Antwort

5

Es gibt eine Reihe von Möglichkeiten, dies zu tun. Am einfachsten wäre es wahrscheinlich, die Euro-Währung mit einem anderen Symbol neu zu registrieren.

folgendes in einem initializer Put:

# 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  => "," 
}) 

A Schienen Konsole meldet nun:

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

Vielen Dank. In meinem Fall habe ich Folgendes verwendet, um das von der to_html-Methode generierte Symbol zu ändern, falls jemand das gleiche Problem hat.

# 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

Ich habe folgendes in meinem config/initializers/spree.rb ein anderes Symbol zu injizieren:

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

diese Weise werden die Währungen nicht beschrieben sind gehen zu mischen.

0

Ich löste das Problem mit dem folgenden in einem Initialisierer, z. config/initializers/currency_formatting.rb:

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

Diese Haken in die Formatierungsregeln in Spree::Money gefunden, die die formatting Options of the Money Gem alle steuern kann, einschließlich der, einen Raum zwischen dem Symbol und der Anzahl platzieren. Dies hat gegenüber den anderen hier vorgestellten Lösungen den Vorteil, dass es mit allen Währungen gleichzeitig funktioniert.

Verwandte Themen