2

如您所见,我必须在此 Web 应用程序http://www.designconnected.com/上向应用程序添加更多货币,它将价格转换为您选择的任何货币并保持这种方式。我一直在寻找已经过时的 gem,教程找不到任何东西,并且在 stackoverflow 中有一些关于它的问题,但没有一个得到我需要的东西。

如果你们中有人知道最近发布的更好的宝石......请告诉我。或者如果没有宝石,我应该向 current_user 添加一个 currency_id 以便应用程序将为该用户显示正确的货币.. 但是我从哪里获取货币汇率.. 我一直在寻找解决方案现在3天了,什么都没有。

谢谢你的任何建议..

这个网址已经过检查:

https://stackoverflow.com/questions/1368010/rails-currency-gem-or-plugin

Rails 3 - 多种货币

https://github.com/RubyMoney/money

最后一个与https://github.com/RubyMoney/google_currency结合看起来像是我需要的那个。但现在是获取有关如何使用它的教程的正确时间。

如果无法找到/获取有关此的完整教程,请提供一些关于如何开始的想法。谢谢你。

4

2 回答 2

7

https://github.com/RubyMoney/money-railshttps://github.com/RubyMoney/google_currency是要走的路。这不是我问的或问题中的,但无论如何这是我现在最接近的答案。这些是我为使其正常工作所做的几个步骤:

宝石文件中

gem "json" #if you don't have it
gem "money"
gem "google_currency"

在里面创建一个文件money.rbconfig/initializers

require 'money'
require 'money/bank/google_currency'
require 'json'
MultiJson.engine = :json_gem
Money.default_bank = Money::Bank::GoogleCurrency.new

product.rb中(或任何需要转换价格的模型)

composed_of :price,
    :class_name => "Money",
    :mapping => [%w(price price), %w(currency currency_as_string)],
    :constructor => Proc.new { |price, currency| Money.new(price || 0, currency || Money.default_currency) },
    :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") }

在视图文件中:

<%= number_to_currency(product.price.exchange_to(:EUR)) %>

例如,我有一个 IT 语言环境(意大利语)——意大利货币现在是欧元:

您可以将价格转换为欧元。它对我来说非常有用,money gem 使用 Google_currency 将价格从美元转换为欧元,并且区域设置 yml 文件更改了此区域设置的货币,因此您的价格看起来像XXX,XX 欧元,而不是 $XXX,XX。

要为每个区域显示正确的货币,您需要添加:

it:
  number:
    currency:
      format:
        format: "%n %u"
        unit: "EUR"

it.yml文件或其他语言中,您使用该国家/地区的货币。

于 2012-04-19T07:23:41.970 回答
1

您可能不需要宝石。您可以使用此处解释的 URL 在代码中的任何位置直接调用 google 的货币 API。这可以在您的模型中完成,也可以直接在视图中通过 AJAX 完成。

http://motyar.blogspot.com/2011/12/googles-currency-converter-and-json-api.html

于 2012-04-18T01:19:30.523 回答