3

做 Sinatra 的入门。我收到此错误:

./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
4

1 回答 1

5

这里的问题是由于你命名你的文件sinatra.rb。当你运行那个文件时,它做的第一件事就是require 'sinatra',因为当前目录在 Ruby 1.8.7 的加载路径上,它会尝试加载自己。然后它会调用get '/' do ...,但由于尚未加载真正的 Sinatra,因此会导致错误。

解决方法是将文件重命名为 以外的名称sinatra.rb,您可以myapp.rb按照链接到的页面中的建议使用。

于 2012-06-21T23:38:42.057 回答