0

我只是安装倾斜:

gem list
tilt (1.2.2)

ruby -v
ruby 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]

我只是尝试来自https://github.com/rtomayko/tilt的基本示例

倾斜.rb

require 'rubygems'
require 'haml'
require 'tilt'
template = Tilt::HamlTemplate.new('haml/about.haml')

它抛出:

./tilt.rb:4: uninitialized constant Tilt (NameError)
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require'
    from tilt.rb:3

任何想法 ?谢谢!

4

1 回答 1

3

您已将应用程序文件命名为tilt.rb,因此当您调用require 'tilt'该文件时会尝试要求自身。您的文件未定义Tilt,因此您会看到看到的错误。

该错误实际上是在需要文件时发生的。它不会陷入递归循环,因为它require会跟踪所需的文件,并且不会尝试重新加载它们。

将您的文件重命名为 以外tilt.rb的名称,例如tilt-test.rb,并且不要将原始文件留在同一目录中,它应该可以工作。

顺便说一句,这在 Ruby 1.9 中不会发生,因为默认情况下当前目录不在加载路径上。

于 2011-06-12T03:15:57.127 回答