ruby - 未初始化的常量 Timeout::Error at Heroku

标签 ruby heroku sinatra

这是我在 Heroku 日志中看到的内容:

heroku[web.1]: Starting process with command `bundle exec rackup config.ru -p 44765`
app[web.1]: bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.3.0/bin/rackup)
app[web.1]: NameError: uninitialized constant Timeout::Error
app[web.1]: Did you mean?  KeyError
app[web.1]:                IOError
app[web.1]:                Errno
app[web.1]:   /app/vendor/ruby-2.3.3/lib/ruby/2.3.0/resolv.rb:164:in `<class:Resolv>'
app[web.1]:   /app/vendor/ruby-2.3.3/lib/ruby/2.3.0/resolv.rb:39:in `<top (required)>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require_with_backports'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/twitter-6.1.0/lib/twitter/streaming/connection.rb:3:in `<top (required)>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require_with_backports'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/twitter-6.1.0/lib/twitter/streaming/client.rb:5:in `<top (required)>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require_with_backports'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/twitter-6.1.0/lib/twitter.rb:26:in `<top (required)>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/backports-3.8.0/lib/backports/std_lib.rb:9:in `require_with_backports'
app[web.1]:   /app/sixnines.rb:34:in `<top (required)>'
app[web.1]:   /app/config.ru:23:in `require_relative'
app[web.1]:   /app/config.ru:23:in `block in <main>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/builder.rb:55:in `instance_eval'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/builder.rb:55:in `initialize'
app[web.1]:   /app/config.ru:in `new'
app[web.1]:   /app/config.ru:in `<main>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/builder.rb:49:in `eval'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/builder.rb:49:in `new_from_string'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/builder.rb:40:in `parse_file'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/server.rb:300:in `build_app_and_options_from_config'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/server.rb:209:in `app'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/server.rb:337:in `wrapped_app'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/server.rb:273:in `start'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/lib/rack/server.rb:148:in `start'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.8/bin/rackup:4:in `<top (required)>'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/bin/rackup:22:in `load'
app[web.1]:   /app/vendor/bundle/ruby/2.3.0/bin/rackup:22:in `<top (required)>'
heroku[web.1]: Process exited with status 1

我尝试了所有方法,但无法真正理解为什么找不到 timeout。有什么提示吗?这是来源:https://github.com/yegor256/sixnines

最佳答案

最初,gem 名称是 timeout-extensions . RubyGems 也允许将其发布为 timeout出于未知原因。

因此,当作为 timeout 包含在 Gemfile 中时,它会阻止 Ruby 的原生 timeout 模块,该模块定义了 Timeout::Error.

因此,Gemfile 中的行应该是

gem 'timeout-extensions'

代替

gem 'timeout'

关于ruby - 未初始化的常量 Timeout::Error at Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45190168/

相关文章:

ruby-on-rails - Rails 实例(作者:Michael Hartl),第 9.23 课重定向不起作用

css - 从 Foundation - Rails 更改选项卡名称

ruby-on-rails - 使用 Octokit 从组织中检索私有(private)存储库

ruby-on-rails - 奇怪的 ActiveRecord::AssociationTypeMismatch

ruby-on-rails - 为什么 Heroku 的运行速度比 localhost 慢很多?

node.js - 在 Heroku 上设置 node.js 服务器的端口

javascript - 如何使用github将nodejs应用程序部署到heroku

ruby - 使用 Sinatra 开发一个完整的网站有什么问题吗?

javascript - react JS : no answer from Sinatra server with fetch call

ruby-on-rails - 有 n,属于 Sinatra 中的 DataMapper