rails财务货币转换器问题在rails中

时间:2018-06-06 06:11:40

标签: ruby-on-rails-4 converter currency google-finance

我正在使用Google货币转换器,但它无效。它只是重定向到:

http://finance.google.com:80/bctzjpnsun/converter?a=1&from=EUR&to=USD

或者它给出错误404 Not Found

这是我的代码:

gem文件:

gem 'money'
gem 'google_currency', '~> 3.4.1'

转换器方法

def self.exchange_to_USD annual_salary, currency
  begin
    mothly_salary = annual_salary / 12
    if currency.present?
      salary = Money.new(mothly_salary, currency).exchange_to(:USD).fractional
    else
      salary = mothly_salary  
    end
  rescue Money::Bank::UnknownRate => e
    salary = mothly_salary
  rescue Exception => e
    salary = mothly_salary
  end
  salary
end

application.rb文件

require 'money'
require 'money/bank/google_currency'

# set the seconds after than the current rates are automatically expired
# by default, they never expire
Money::Bank::GoogleCurrency.ttl_in_seconds = 86400

# set default bank to instance of GoogleCurrency
Money.default_bank = Money::Bank::GoogleCurrency.new

2 个答案:

答案 0 :(得分:0)

谷歌已经贬低了检索费率的方式。以前“bctzjpnsun”链接是获取它们的另一种方式,但最近关闭了(可能在2018年6月1日)。

您可以在此处找到一些替代服务:https://stackoverflow.com/a/8391430/6038636

答案 1 :(得分:0)

改用eu_central_bank

我们最终用 eu_central_bank 替换了 google_currency,这非常简单并且效果很好。它是 RubyMoney 的一部分,因此应该得到很好的维护。基本替换如下所示:

eu_central_bank = EuCentralBank.new

eu_central_bank.update_rates # TODO: Make this use a cache in a shared directory and just update it every day.

Money.default_bank = eu_central_bank

绝对是一个值得考虑的好选择。