【问题标题】:Errors in the Sinatra 'hello world'Sinatra 'hello world' 中的错误
【发布时间】:2012-06-21 22:26:27
【问题描述】:

做 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

【问题讨论】:

  • 你能发布实际代码吗?外部链接不是很好。
  • sinatra.rb 的第 5 行,您是否在代码中调用get 而不是gets
  • @Linuxios 是的,有。

标签: ruby linux sinatra


【解决方案1】:

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

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

【讨论】:

  • 谢谢!我犯了一个愚蠢的错误。
  • 修复工作并清楚地解释错误如何在内部工作。
猜你喜欢
  • 2016-12-03
  • 1970-01-01
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多