在我的Rails應用我有一個型號/ foo.rb和型號/富/ exceptions.rb:ruby類和具有相同名稱的模塊之間的關係是什麼?
class Foo
include Foo::Exceptions
end
module Foo::Exceptions
class MySpecialException < Exception
end
end
在軌控制檯,然後我看到:
>> Foo::MySpecialException
Foo::Exceptions::MySpecialException < Exception
>> Foo::MySpecialException == Foo::Exceptions::MySpecialException
true
>> Foo::MySpecialException === Foo::Exceptions::MySpecialException
false
- 你對我的文件結構/命名空間有什麼看法?
- 是否需要包含
Foo
的行,還是Rails自動包含這些模塊? - 爲什麼
MySpecialException
存在於頂層Foo
命名空間並指向Foo::Exceptions::MySpecialException
? - 這是什麼意思,這兩個類是
==
但不是===
?
我在irb中探討了這個問題,但仍然遇到與我在Rails中看到的行爲不一致的錯誤。
相關:What is a conventional place to keep custom Exception definitions in a rails project?
「(我不確定這與你的問題的其餘部分有什麼關係)」 - 因爲'module Foo :: Bar'沒有暗示'模塊'Foo`也存在嗎? – 2011-02-07 03:54:24