2013-05-08 56 views
1

我試圖在控制檯應用程序中爲我的類創建名稱空間。Ruby Class Module未初始化常量

我的結構類似如下:

的lib/somemodule/class1.rb 的lib/somemodule/class2.rb

現在比如我想有以下幾點:

module SomeModule 
     class Class1 
      def self.method1 
      SomeModule::Class2.new() 
      end 
     end 
end 

module SomeModule 
     class Class2 

     end 
end 

這會導致如下錯誤:未初始化的常量SomeModule :: Class2

請告知如何解決t他的問題。

+0

你是如何要求每個文件? – 2013-05-08 04:01:59

+3

顯然,您在調用'method1'時不需要'lib/somemodule/class2.rb'文件。 – 2013-05-08 04:04:30

回答

0

我認爲有以下應該工作:只需添加::到模塊的名稱:

module SomeModule 
     class Class1 
      def self.method1 
      ::SomeModule::Class2.new() 
      end 
     end 
end 
+0

我仍然收到相同的錯誤信息:( – Brian 2013-05-08 03:21:28

+0

我不明白你有2個文件,我認爲@ Marc-AndréLafortune的上述評論是正確的,你應該爲你的代碼添加一個'require'語句。 – davidrac 2013-05-08 04:17:25

0

我沒有得到任何錯誤?紅寶石1.9.3p392(2013-02-22修訂版39386)[x86_64-darwin11.4.2]