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

时间:2011-04-30 23:19:58

标签: ruby sinatra

我对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

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

1 个答案:

答案 0 :(得分:3)

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

gem install sinatra -v 1.2.3

安装以前的版本,然后添加:

gem 'sinatra', '=1.2.3'
require陈述之前

This is documented是一个问题。


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