/ / Ruby Sinatra jogando errado número de argumentos (2 para 1) em const_get - ruby, sinatra

Ruby Sinatra jogando número incorreto de argumentos (2 para 1) em const_get - ruby, sinatra

Eu instalei gemas sinatra em locaismáquina (Ruby 2.x) e servidor (Ruby 1.8.x). Funcionou bem na minha máquina local, mas falhando no servidor. Por favor, ajude-me a resolver isso se alguém já se deparou com isso antes.

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)

Exceção

rubi / 1.8 / gemas / rack-1.6.4 / lib / rack / handler.rb: 22: em 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:inganhar ..gem / ruby ​​/ 1.8 / gems / sinatra-1.4.6 / lib / sinatra / base.rb: 1777: em detect_rack_handler" from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1775:incada" de .gem / ruby ​​/ 1.8 / gems / sinatra-1.4.6 / lib / sinatra / base.rb: 1775: em detect_rack_handler" from \..gem/ruby/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1437:incorre!" de .gem / ruby ​​/ 1.8 / gems / sinatra-1.4.6 / lib / sinatra / main.rb: 25

Respostas:

3 para resposta № 1

Ruby 1.8.7:

const_get(sym) => obj

Ruby 2.1.0:

const_get(sym, inherit=true) → obj

Então, mesmo que o Sinatra afirme que ele suportaruby 1.8.7, Rack, aparentemente, não. Você pode tentar fazer o downgrade do Rack para a última versão que suporta o 1.8.7 (eu não tenho idéia de qual seria). Mas por que você usaria o 1.8.7 em 2015?


-2 para resposta № 2

Para o rubi 1.8.7 e sinatra 1.4.6. atualize a versão do rack de atualização Gemfile.lock.

cremalheira (1.6.1) instalação do pacote