2009-08-24 5 views
0

두 개의 루비 파일이 있습니다.루비 초기화되지 않은 상수 NameError

in `<main>': uninitialized constant Poster (NameError) 
: 첫 번째는
require 'www/poster' 

poster = Poster.new() 

가 ('www /에서 poster.rb')가 문제가

require ... 

class Poster ... end 

초 인 인 내가 첫 번째 파일을 실행하면, 오류가 발생합니다

그러나 난 그냥

require ... 
class Poster 

end 

__END__ 
class Poster #original class here 
와 함께 원래의 코드를 대체하는 경우

괜찮습니다. 이 코드는 Ruby 1.8.6에서 제대로 작동했으며 1.9.1p129 (2009-05-12 개정 23412) [i386-mswin32]로 업그레이드 한 후에 문제가 시작되었습니다. 해결 방법이 있습니까?

+1

게시하시기 바랍니다와 DataMapper 철자했다 코드

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

가장 작은 * 실행 가능한 * 당신이 설명하는 동작을 나타내는 코드의 조각. 귀하의 코드는 여기에 작성 후 잘 실행됩니다 ... – sepp2k

답변

1

Ruby 1.9보다 Ruby 1.9에서 다르게 동작하게하는 코드에는 아무 것도 없습니다.

  • MRI 루비 1.8.6 (2009-03-31 패치 레벨을 : 나는 & 복사 할 때 실제로는 다음과 같은 구성의 모두에되어있는 것처럼 두 개의 파일로 게시 된 코드, 그들은 정확히 작동 붙여 넣기 368) I386-mingw32]
  • YARV 루비 1.9.1p129 (2009-05-12 수요일 수정 23,412) [I386-mingw32]
  • JRuby에서의 1.4.0dev (루비 1.8.7p174) (2009-08-24 6,586) (Java HotSpot (TM) 클라이언트 VM 1.6.0_14-ea) [x86-java]
  • JRuby 1.4.0dev (ruby 1.9.1p0) (2009-08-24 6586) (Java HotSpot (TM) 클라이언트 VM 1.6. 0_14-ea) [x86-java]
  • 컴파일 할 때
+1

글쎄, 잘못 '...'일부 코드를 건너 뛰었습니다,하지만 내 노력에 감사, 루비 통역이하지 않은 몇 가지 유니 코드 연결 오류가 발생했습니다 어떤 이유로보고하지 않을 것 : / – Fluffy

0

0이 오류

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

을 얻었다. 다음은 오류의 원인은 내가 소문자 'm'

관련 문제