我有一个多语言电子商务网站。
我正在使用 I18n API 处理多语言翻译;像这样:
def set_locale
I18n.locale = session[:locale]
end
这对于静态文本非常有用,因此我可以使用不同的词典来分隔文本。
然而,这是电子商务;因此需要价格变量。
我正在尝试使用墨西哥比索和美元
价格以墨西哥比索存储在数据库中。
我在数据库中还有一个选项,其值为 mxn_to_usd。
所以 1 美元 = 18 墨西哥比索。
现在,显示价格;我这样做:
number_to_currency(disc.price, :unit => "$")
但这只适用于一种货币。
我尝试过重写 number_to_currency 方法;因此,当 I18n.locale 为“EN”时,它会将 MXN(存储在数据库中的)转换为美元。
但是还没有成功。
有什么想法吗?
最佳答案
您正在寻找的是使用汇率,我建议您使用money
gem https://github.com/RubyMoney/money您可以像这样加载汇率:
Money.add_rate("USD", "CAD", 1.24515) Money.add_rate("CAD", "USD", 0.803115) Money.us_dollar(100).exchange_to("CAD") # => Money.new(124, "CAD") Money.ca_dollar(100).exchange_to("USD") # => Money.new(80, "USD")
关于ruby-on-rails - Rails 中的货币转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38601529/