2017-07-12 11 views
0

のように私はUSD$ 100のような何かを返すhumanized_money_with_symbolの方法をしたいと思うだけでなく、$ 100。また、通貨記号が$の場合にのみ、私は$がUSDとAUDのときをユーザーに知らせたいと考えています。

答えて

0

MoneyRailsそれlooks likehumanized_money_with_symbolちょうどあなたがそれを渡されたパラメータにsymbol: truehumanized_moneyマージを呼び出すを使用しないでください。

そのヘルパーは、渡されたmoneyオブジェクトのformatを呼び出し、指定したオプションを渡します。あなたは

humanized_money(Money.new('123', :usd), symbol: 'USD $') 
# => "USD $1.23" 

を呼び出す場合Money宝石では、あなたがそうのような

m = Money.new('123', :gbp) # => #<Money fractional:123 currency:GBP> 
m.format(symbol: m.currency.to_s + ' ') # => "GBP 1.23" 

で通貨をレンダリングする:symbolに渡すことができ、そのあとに、アプリケーション内のヘルパーメソッドを設定できますそのシンボルを常に通過させないようにしてください:

def render_custom_currency(value, options = {}) 
    value.currency.iso_code == "USD" ? humanized_money(value, options.merge(symbol: 'USD $')) : humanized_money(value, options.merge(symbol: true)) 
end 

あなたがしたいことを得られるはずです。

0

あなたは、シンボルの一部として「USD」を表示するinitializers/money.rbにUSDの設定を上書きすることができます

MoneyRails.configure do |config| 
    config.register_currency = { 
    "priority": 2, 
    "iso_code": "USD", 
    "name": "United States Dollar", 
    "symbol": "USD $", 
    "subunit": "Cent", 
    "subunit_to_unit": 100, 
    "symbol_first": true, 
    "decimal_mark": ".", 
    "thousands_separator": ",", 
    } 
end 

は、サーバーを再起動して、あなたは「USD $ 100」を参照してくださいする必要があります。私は複数の通貨を使用していませんが、これはあなたの他の通貨を通常のままにしておきます。

1

最後に、私はMoneyRails gemオプションdisambiguate: trueにビルトインを使用しました。

humanized_money_with_symbol(value, { disambiguate: true }) 

それがどのように動作するかいくつかの例here

です:

あなたは以下のようなメソッドを呼び出して、それを使用するには

関連する問題