Ruby未初始化常量名称错误
我有两个ruby文件。首先是Ruby未初始化常量名称错误,ruby,class,Ruby,Class,我有两个ruby文件。首先是 require 'www/poster' poster = Poster.new() 第二个('www/poster.rb')是 问题是,当我运行第一个文件时,我得到一个错误: in `<main>': uninitialized constant Poster (NameError) 没关系。代码在Ruby 1.8.6中运行良好,在升级到1.9.1p129(2009-05-12修订版23412)[i386-mswin32]后开始出现问题。有什么解
require 'www/poster'
poster = Poster.new()
第二个('www/poster.rb')是
问题是,当我运行第一个文件时,我得到一个错误:
in `<main>': uninitialized constant Poster (NameError)
没关系。代码在Ruby 1.8.6中运行良好,在升级到1.9.1p129(2009-05-12修订版23412)[i386-mswin32]后开始出现问题。有什么解决方法吗?您的代码中绝对没有任何东西会导致Ruby 1.9中的行为与Ruby 1.8中的行为不同。事实上,当我将您发布的代码复制并粘贴到两个文件中时,它们的工作原理与预期的完全相同,在以下所有配置中:
- MRI Ruby 1.8.6(2009-03-31 patchlevel 368)[i386-mingw32]
- YARV Ruby 1.9.1p129(2009-05-12修订版23412)[i386-mingw32]
- JRuby 1.4.0dev(ruby 1.8.7p174)(2009-08-246586)(Java热点(TM)客户端VM 1.6.0_14-ea)[x86 Java]
- JRuby 1.4.0dev(ruby 1.9.1p0)(2009-08-246586)(Java热点(TM)客户端VM 1.6.0_14-ea)[x86 Java]
- 我遇到了这个错误
`<class:Employee>': uninitialized constant Employee::Datamapper (NameError)
错误的原因是我用小写字母“m”拼写了DataMapper请发布显示您描述的行为的最小可运行代码段。在这里,您的代码在填写…之后运行得很好,错误的“…”表示一些跳过的代码,但是感谢您的努力,在我的例子中,有一些unicode连接的错误,ruby解释器由于某种原因不想报告:/
require ...
class Poster
end
__END__
class Poster #original class here
`<class:Employee>': uninitialized constant Employee::Datamapper (NameError)
class Employee
include Datamapper::Resource
property :id, Serial
....