2009-08-24 139 views
0

我有两个ruby文件。首先是Ruby未初始化的常量NameError

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]后开始出现问题。有什么解决方法吗?

+1

请张贴最小的*可运行*片表现出您所描述的行为的代码。在填入... – sepp2k 2009-08-24 08:41:17

回答

1

你的代码中绝对没有任何东西会导致它在Ruby 1.9中的行为与在Ruby 1.8中的行为不同。事实上,当我复制粘贴&你贴到两个文件的代码,他们工作完全一样都应该在以下所有配置:

  • MRI的Ruby 1.8.6(2009-03-31 PATCHLEVEL 368)[I386-的mingw32]
  • YARV红宝石1.9.1p129(2009-05-12的修订23412)[I386-的mingw32]
  • 的JRuby 1.4.0dev(红宝石1.8.7p174)(2009-08-24 6586) (Java HotSpot TM Client VM 1.6.0_14-ea)[x86-java]
  • JRuby 1.4.0dev(ruby 1.9.1p0)(2009-08-24 6586)(Java HotSpot TM Client VM 1.6。 0_14-ea)[x86-java]
+1

之后,你的代码运行得很好,在错误的'...'中意味着一些跳过的代码,但是感谢努力,在我的情况下有一些unicode连接的错误,ruby解释器没有不想出于某种原因报告:/ – Fluffy 2009-08-24 18:00:51

0

我编译时得到这个错误

`<class:Employee>': uninitialized constant Employee::Datamapper (NameError) 

。下面是代码

class Employee 
    include Datamapper::Resource 
    property :id,    Serial 
.... 

的原因错误是我拼写的DataMapper以一个小写的“m”

相关问题