什么是&书信电报;顶部(必需)>&引用;在Ruby堆栈跟踪中是什么意思?
在Ruby 1.9.2堆栈跟踪中,我经常看到给出的方法是什么是&书信电报;顶部(必需)>&引用;在Ruby堆栈跟踪中是什么意思?,ruby,Ruby,在Ruby 1.9.2堆栈跟踪中,我经常看到给出的方法是,如下面堆栈的这一部分所示。这是什么意思?我的Ruby安装是否有细微的损坏 Could not find abstract-1.0.0 in any of the sources /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:87:in `block in materialize' /usr/local/lib/ruby/gems/1.9
,如下面堆栈的这一部分所示。这是什么意思?我的Ruby安装是否有细微的损坏
Could not find abstract-1.0.0 in any of the sources
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:87:in `block in materialize'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:81:in `map!'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:81:in `materialize'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/definition.rb:90:in `specs'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/definition.rb:135:in `specs_for'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/definition.rb:124:in `requested_specs'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/environment.rb:23:in `requested_specs'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:11:in `setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler.rb:107:in `setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/setup.rb:14:in `<top (required)>'
<internal:lib/rubygems/custom_require>:33:in `require'
<internal:lib/rubygems/custom_require>:33:in `rescue in require'
<internal:lib/rubygems/custom_require>:29:in `require'
在任何源代码中都找不到abstract-1.0.0
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:87:在“物化中的块”中
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:81:in'map!'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/spec_set.rb:81:在“物化”中
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/definition.rb:90:in'specs'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/definition.rb:135:in'specs_for'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/definition.rb:124:“请求的规范”中
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/environment.rb:23:in“请求的规格”
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/runtime.rb:11:in'setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler.rb:107:in'setup'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.13/lib/bundler/setup.rb:14:in`'
:33:在'require'中
:33:在“紧急救援”中
:29:在'require'中
它是文件的顶层,即在需要文件时运行的任何内容。因此,如果在库的设置过程中出现故障(例如,找不到某个必需的文件),它将像这样显示在堆栈跟踪中。当我在“Jump Start Sinatra”一书中编写教程时,遇到了这个错误 通过确保运行
sudogem安装
,我消除了这个错误。所以在我的例子中,我有一个main.rb
,在这个文件中我有这个
require 'sinatra'
require 'sinatra-contrib'
因此,我回到了项目的根目录,运行了sudogem install sinatra
和sudogem install sinatra contrib
,然后我的项目运行良好
你的错误会有所不同,但因为这是我在谷歌上搜索时发现的,我知道其他人也会出于类似的原因来到这里。我提供这个解决方案至少是为了让你朝着正确的方向思考,因为这对我来说很有效 如果所需的一切都是正确的,则可能意味着您正在尝试创建一个具有已存在的模块名称的类。例如,以下文件:
class Test
end
将提出:
”:测试不是类(TypeError)
因为测试隐含着一个模块。我也有同样的问题。通过使用记事本++将.rb文件编码转换为UTF-8-BOM解决了这个问题。Nito的答案完全有道理。这是一个堆栈跟踪,你得到一个失败的东西。我通过以下方式运行测试:
bundle exec rspec spec
我得到的是:
An error occurred while loading ./spec/foodie_spec.rb.
Failure/Error: require 'foodie/food'
SyntaxError:
/Users/honey/Dev/foodie/funnex/lib/funnex/food.rb:17: syntax error, unexpected end-of-input, expecting end
# ./lib/foodie.rb:4:in `require'
# ./lib/foodie.rb:4:in `<top (required)>'
# ./spec/foodie_spec.rb:1:in `require'
# ./spec/foodie_spec.rb:1:in `<top (required)>'
No examples found.
Finished in 0.00002 seconds (files took 0.07998 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
- 在
的第1行,我有foodie_spec
要求“foodie”
- 在
我要求“foodie/food”foodie.rb的第4行
- 我在
17行出错foodie/food
# ./spec/foodie_spec.rb:1:in `<top (required)>'