ruby-on-rails - Rails 中的货币转换

标签 ruby-on-rails ruby currency

我有一个多语言电子商务网站。

我正在使用 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/

相关文章:

javascript - 如何在 Rails 中输出整个 Assets 管道?

ruby-on-rails - 路由错误 - 没有路由匹配 "/"?

Ruby:如何用内存来装饰一个方法?

Javascript 小数

ios - 导致零对象 C 的未知错误

mysql - 更改mysql中的货币小数位

ruby-on-rails - Rails 和 CanCan : If user is logged in then allow him/her to view index page?

ruby-on-rails - 如何在heroku上使用rails使用twitter/datasift流

ruby - 仅针对特定参数的 Rspec stub 方法

ruby - 如果 Ruby 不存在则创建目录