我有两个ruby文件。第一个是
require 'www/poster'
poster = Poster.new()
第二个('www / poster.rb')是
require ...
class Poster ... end
问题是,当我运行第一个文件时,出现错误:
in `<main>': uninitialized constant Poster (NameError)
但如果我用
替换原始代码require ...
class Poster
end
__END__
class Poster #original class here
没关系。代码在Ruby 1.8.6中运行良好,升级到1.9.1p129(2009-05-12修订版23412)[i386-mswin32]后问题就开始了。有没有解决方法?
答案 0 :(得分:1)
在您的代码中绝对没有任何东西会导致它在Ruby 1.9中的行为与Ruby 1.8中的行为不同。事实上,当我复制&amp;将您发布的代码粘贴到两个文件中,它们的工作方式与以下所有配置完全相同:
答案 1 :(得分:0)
我收到了这个错误
`<class:Employee>': uninitialized constant Employee::Datamapper (NameError)
编译时。这是代码
class Employee
include Datamapper::Resource
property :id, Serial
....
错误的原因是我使用小写的'm'
拼写了DataMapper