ruby-on-rails - youtube_it 在更新到 Ruby 2 后抛出 ArgumentError - 如何修复?

标签 ruby-on-rails ruby ruby-on-rails-3 youtube ruby-2.0

我有一个应用程序,它的任务是抓取一个网站,然后将抓取的一些信息发布到 youtube 上。

将应用程序更新为 ruby​​ 2 后,youtube 上传停止工作并开始显示以下内容:

(ArgumentError) "wrong number of arguments (2 for 0..1)"
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/youtube_it 2.1.13/lib/youtube_it/chain_io.rb:66:in `read'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/generic_request.rb:202:in `copy_stream'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/generic_request.rb:202:in `send_request_with_body_stream'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/generic_request.rb:132:in `exec'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1403:in `block in transport_request'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1402:in `catch'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1402:in `transport_request'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1375:in `request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/newrelic_rpm-3.6.0.83/lib/new_relic/agent/instrumentation/net.rb:25:in `block in request_with_newrelic_trace'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/newrelic_rpm-3.6.0.83/lib/new_relic/agent/cross_app_tracing.rb:39:in `trace_http_request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/newrelic_rpm-3.6.0.83/lib/new_relic/agent/instrumentation/net.rb:24:in `request_with_newrelic_trace'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1368:in `block in request'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:851:in `start'
/usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1366:in `request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/newrelic_rpm-3.6.0.83/lib/new_relic/agent/instrumentation/net.rb:25:in `block in request_with_newrelic_trace'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/newrelic_rpm-3.6.0.83/lib/new_relic/agent/cross_app_tracing.rb:39:in `trace_http_request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/newrelic_rpm-3.6.0.83/lib/new_relic/agent/instrumentation/net.rb:24:in `request_with_newrelic_trace'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/faraday-0.8.7/lib/faraday/adapter/net_http.rb:75:in `perform_request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/faraday-0.8.7/lib/faraday/adapter/net_http.rb:38:in `call'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/faraday-0.8.7/lib/faraday/response.rb:8:in `call'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/youtube_it-2.1.13/lib/youtube_it/middleware/faraday_authheader.rb:17:in `call'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/faraday-0.8.7/lib/faraday/connection.rb:247:in `run_request'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/faraday-0.8.7/lib/faraday/connection.rb:112:in `post'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/youtube_it-2.1.13/lib/youtube_it/request/video_upload.rb:92:in `upload'
/home/deployer/apps/project/shared/bundle/ruby/2.0.0/gems/youtube_it-2.1.13/lib/youtube_it/client.rb:106:in `video_upload'
/home/deployer/apps/project/current/app/models/cme_event.rb:169:in `upload_on_youtube'

这是一个关于参数数量的简单愚蠢错误,它似乎是 net/http 将两个参数而不是前一个参数传递给函数。我试图通过添加额外的可选参数来更改 youtube_it gem 上的代码,但仍然没有成功。

所以有人知道 ruby​​ 2 上的 net/http 有什么改变可以打破这个吗?

最佳答案

这已在新版本的 youtube_it gem (2.3.2) 中得到修复,另请参阅:

https://github.com/kylejginavan/youtube_it/issues/159 https://github.com/kylejginavan/youtube_it/issues/167

关于ruby-on-rails - youtube_it 在更新到 Ruby 2 后抛出 ArgumentError - 如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16085079/

相关文章:

java - 索引操作 Java Spring Controller

ruby-on-rails - Rail 对象关系和 JSON 渲染

ruby-on-rails - 如何将订阅者关联到事件

Ruby 表达式解析

ruby-on-rails - 如何让 Rails 为 PDFKit 呈现特定于 PDF 的 HTML?

javascript - 动态 javascript 悬停在 Rails 上?

ruby-on-rails - 如何重命名列并同时通过迁移更改其类型

jquery - 如何在rails 3中实时显示日志更新?

ruby-on-rails - OpenSSL::SSL::SSLError: SSL_connect SYSCALL 返回=5 errno=0 state=SSLv3/TLS write client hello

ruby-on-rails-3 - 将 pjax 与特定于页面的 javascript 和 css 一起使用