Ruby Sinatra 在 const_get 中抛出错误数量的参数(2 对 1)
Ruby Sinatra throwing wrong number of arguments (2 for 1) in const_get
我已经在本地机器(Ruby 2.x)和服务器(Ruby 1.8.x)上安装了 sinatra gems。它在我的本地机器上运行良好,但在服务器上失败。如果以前有人遇到过这个问题,请帮助我解决这个问题。
require 'rubygems'
require 'sinatra'
get '/' do
'Hello world!'
end
ruby --version
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
gem list
rack (1.6.4)
rack-protection (1.5.3)
sinatra (1.4.6)
tilt (2.0.1)
异常
ruby/1.8/gems/rack-1.6.4/lib/rack/handler.rb:22:in const_get': wrong
number of arguments (2 for 1) (ArgumentError) from
\..gem/ruby/1.8/gems/rack-1.6.4/lib/rack/handler.rb:22:in
get' from
\..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1777:in
detect_rack_handler' from
\..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1775:in
each'
from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1775:in
detect_rack_handler' from
\..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1437:in
run!'
from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/main.rb:25
Ruby 1.8.7:
const_get(sym) => obj
Ruby 2.1.0:
const_get(sym, inherit=true) → obj
因此,尽管 Sinatra 声称它支持 ruby 1.8.7,但 Rack 显然不支持。您可以尝试将 Rack 降级到支持 1.8.7 的最新版本(我不知道会是哪个版本)。但是你为什么要在 2015 年使用 1.8.7?
对于 ruby 1.8.7 和 sinatra 1.4.6。
更新 Gemfile.lock 更新机架版本。
机架 (1.6.1)
捆绑安装
我已经在本地机器(Ruby 2.x)和服务器(Ruby 1.8.x)上安装了 sinatra gems。它在我的本地机器上运行良好,但在服务器上失败。如果以前有人遇到过这个问题,请帮助我解决这个问题。
require 'rubygems'
require 'sinatra'
get '/' do
'Hello world!'
end
ruby --version
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
gem list
rack (1.6.4)
rack-protection (1.5.3)
sinatra (1.4.6)
tilt (2.0.1)
异常
ruby/1.8/gems/rack-1.6.4/lib/rack/handler.rb:22:in
const_get': wrong number of arguments (2 for 1) (ArgumentError) from \..gem/ruby/1.8/gems/rack-1.6.4/lib/rack/handler.rb:22:in
get' from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1777:indetect_rack_handler' from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1775:in
each' from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1775:indetect_rack_handler' from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1437:in
run!' from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/main.rb:25
Ruby 1.8.7:
const_get(sym) => obj
Ruby 2.1.0:
const_get(sym, inherit=true) → obj
因此,尽管 Sinatra 声称它支持 ruby 1.8.7,但 Rack 显然不支持。您可以尝试将 Rack 降级到支持 1.8.7 的最新版本(我不知道会是哪个版本)。但是你为什么要在 2015 年使用 1.8.7?
对于 ruby 1.8.7 和 sinatra 1.4.6。 更新 Gemfile.lock 更新机架版本。
机架 (1.6.1) 捆绑安装