我定义了以下类:
class ErrorMailer
end
我有一个模块Test
,我希望在其中添加上面的类。我试过两种方式:
# 1)
module Test
class ErrorMailer < ::ErrorMailer; end
end
# 2)
module Test
ErrorMailer = ::ErrorMailer
end
1)
按预期工作:
(rdb:1) Test.constants
[:ErrorMailer]
(rdb:1) Test::ErrorMailer
Test::ErrorMailer
但是,2)
不会:Test
在其命名空间下确实没有ErrorMailer
:
(rdb:1) Test.constants
[:ErrorMailer]
(rdb:1) Test::ErrorMailer
ErrorMailer
我的问题是,这两种方式有什么不同,我如何改进第二种方式来做我期望它做的事情?我觉得当我只想将该类添加到命名空间时,只从类继承看起来不那么好。
P.S。:当然,我已经分别尝试了1)
和2)
,而不是同时。