启动Sinatra时出错:“尝试创建没有块的Proc对象”

我对ruby / rails非常新,并且有一个我无法弄清楚的问题,但觉得它应该相对简单。

命令:

ruby app.rb 

错误:

 /Library/Ruby/Gems/1.8/gems/sinatra-1.2.5/lib/sinatra/base.rb:1144:in `define_method': tried to create Proc object without a block (ArgumentError) from /Library/Ruby/Gems/1.8/gems/sinatra-1.2.5/lib/sinatra/base.rb:1144:in `compile!' from /Library/Ruby/Gems/1.8/gems/sinatra-1.2.5/lib/sinatra/base.rb:1129:in `route' from /Library/Ruby/Gems/1.8/gems/sinatra-1.2.5/lib/sinatra/base.rb:1111:in `get' from /Library/Ruby/Gems/1.8/gems/sinatra-1.2.5/lib/sinatra/base.rb:1474:in `send' from /Library/Ruby/Gems/1.8/gems/sinatra-1.2.5/lib/sinatra/base.rb:1474:in `get' from app.rb:4 

app.rb内容:

 require 'rubygems' require 'sinatra' get '/' do "Hello World" end 

我更新了所有gem,仍然得到同样的错误。 如果需要,我也可以发布gem列表。

从我所知道的,我之前遇到过这一点,Sinatra的v1.2.5就是问题所在。 v1.2.3没有这样做,所以试试吧

 gem install sinatra -v 1.2.3 

要安装以前的版本,请添加:

 gem 'sinatra', '=1.2.3' 

require语句之前。

这被记录为一个问题。


编辑:Sinatra刚刚碰到新版本1.2.6,它解决了这个问题。 使用gem update sinatra ,然后使用gem uninstall sinatra -v 1.2.5删除旧的bug,版本。