更新到Ruby 3.0.1后,Shotgun无法启动

pbgvytdp  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(119)

在升级到Ruby 3.0.1后,我尝试为Sinatra应用启动Shotgun,并得到以下结果:

$ shotgun 
== Shotgun/Thin on http://127.0.0.1:9393/
/Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/handler/thin.rb:11:in `run': wrong number of arguments (given 2, expected 1) (ArgumentError)
    from /Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/shotgun-0.9.2/bin/shotgun:156:in `<top (required)>'
    from /Users/me/.rbenv/versions/3.0.1/bin/shotgun:23:in `load'
    from /Users/me/.rbenv/versions/3.0.1/bin/shotgun:23:in `<main>'

字符串
运行gem list,我得到:
shotgun (0.9.2)
怎么了?谢谢!

ujv3wf0j

ujv3wf0j1#

Ruby v3.0引入了一个突破性的变化,与关键字和位置参数有关。
shotgun gem已经很久没有更新了;最新版本(0.9.2)于2016年9月发布。
看看github中的gem,我看到有一个关于你提出的这个问题的open issue,有人已经-很有帮助-forked the project with a fix
除非原作者合并此修复并发布新版本的gem,否则您需要使用如上所述的分叉版本。例如,更新您的Gemfile

gem 'shotgun', git: 'https://github.com/delonnewman/shotgun.git'

字符串
然后运行bundle install
还有this open PR也有完全相同的修复,所以你同样可以使用该分叉。
.或者,现在坚持使用Ruby 2.7

相关问题