代码之家  ›  专栏  ›  技术社区  ›  Shalafister's

欧盟中央银行

  •  3
  • Shalafister's  · 技术社区  · 6 年前

    2018-09-06T18:26:20.629896+00:00 app[web.1]:   Error ID: 79f8e4f3
    2018-09-06T18:26:20.629903+00:00 app[web.1]:   Error details saved to: /tmp/passenger-error.ZqeFNI
    2018-09-06T18:26:20.629905+00:00 app[web.1]:   Message from application: redirection forbidden: http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml -> https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml (RuntimeError)
    2018-09-06T18:26:20.629907+00:00 app[web.1]:   /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/open-uri.rb:224:in `open_loop'
    2018-09-06T18:26:20.629908+00:00 app[web.1]:   /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/open-uri.rb:150:in `open_uri'
    2018-09-06T18:26:20.629912+00:00 app[web.1]:   /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/open-uri.rb:716:in `open'
    2018-09-06T18:26:20.629916+00:00 app[web.1]:   /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/open-uri.rb:34:in `open'
    2018-09-06T18:26:20.629919+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/eu_central_bank-0.5.0/lib/eu_central_bank.rb:87:in `doc'
    2018-09-06T18:26:20.629941+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/eu_central_bank-0.5.0/lib/eu_central_bank.rb:20:in `update_rates'
    2018-09-06T18:26:20.629976+00:00 app[web.1]:   /app/config/initializers/money.rb:5:in `<top (required)>'
    2018-09-06T18:26:20.630007+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load'
    2018-09-06T18:26:20.630038+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `block in load'
    2018-09-06T18:26:20.630069+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency'
    2018-09-06T18:26:20.630099+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load'
    2018-09-06T18:26:20.630128+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/engine.rb:652:in `block in load_config_initializer'
    2018-09-06T18:26:20.630158+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.0/lib/active_support/notifications.rb:166:in `instrument'
    2018-09-06T18:26:20.630205+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/engine.rb:651:in `load_config_initializer'
    2018-09-06T18:26:20.630344+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/engine.rb:616:in `block (2 levels) in <class:Engine>'
    2018-09-06T18:26:20.630376+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/engine.rb:615:in `each'
    2018-09-06T18:26:20.630409+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/engine.rb:615:in `block in <class:Engine>'
    2018-09-06T18:26:20.630438+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `instance_exec'
    2018-09-06T18:26:20.630467+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `run'
    2018-09-06T18:26:20.630497+00:00 app[web.1]:   /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.0/lib/rails/initializable.rb:55:in `block in run_initializers'
    

    1 回复  |  直到 6 年前
        1
  •  7
  •   Tarek N. Elsamni    6 年前

    显然,你正面临着和这个一样的问题:

    Ruby open-uri redirect forbidden

    https 但是 openuri redirection forbidden

    有一种宝石叫做 open_uri_redirections openuri 允许重定向。

    https://github.com/open-uri-redirections/open_uri_redirections

    您需要做的就是:

    • 把这块宝石放在你的口袋里 Gemfile .
    • $ bundle install 安装新添加的gem。
    • require 'open_uri_redirections'


    另一个补丁(推荐)是monkey补丁 eu_central_bank 要覆盖的宝石

    ECB_RATES_URL eu_central_bank/lib/eu_central_bank.rb:20

    ECB_90_DAY_URL eu_central_bank/lib/eu_central_bank.rb:21

    常量 https协议 而不是 http

    如下(将此代码置于 config/initializers/patch_eu_central_bank.rb ):

    require 'eu_central_bank'
    class EuCentralBank
      ECB_RATES_URL = 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'.freeze
      ECB_90_DAY_URL = 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml'.freeze
    end
    

    warning: already initialized constant EuCentralBank::ECB_RATES_URL

    你可以忍受它直到公共关系最终合并 EuCentralBank 宝石。