Sinatra“你好世界”中的错误

时间:2012-06-21 22:26:27

标签: ruby linux sinatra

做Sinatra的getting started。 我收到这个错误:

./sinatra.rb:5: undefined method `get' for main:Object (NoMethodError)
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from sinatra.rb:3

搜索这些错误会返回ruby LoadError: cannot load such file,我看不出它与Sinatra的关系。

不确定我需要分享哪些其他信息才能使我的问题更加清晰。所以,请告诉我应该运行哪些其他命令来解决问题。

更新:实际代码

# sinatra.rb
require 'rubygems'
require 'sinatra'

get '/' do
        'hey girl'
end

1 个答案:

答案 0 :(得分:5)

此处的问题是由于您命名文件sinatra.rb。当您运行该文件时,它首先执行的是require 'sinatra',并且由于当前目录位于Ruby 1.8.7中的加载路径上,因此它会尝试加载本身。然后它会调用get '/' do ...,但由于真正的Sinatra尚未加载,因此会导致错误。

修复方法是将您的文件重命名为sinatra.rb以外的其他内容,您可以按照链接到的页面中的建议使用myapp.rb