0
我有這個文件夾結構的應用程序:使用const_missing指從模塊外部類
# /app/controllers/first_controller.
class FirstController
def method
'External'
end
end
# /app/controllers/second_controller.rb
class SecondController
def method
'External'
end
end
# /app/controllers/foo/first_controller.rb
module Foo
class FirstController < ::FirstController
def method
'Internal'
end
end
end
我desidered行爲是:
Foo::FirstController#method => "Internal"
Foo::SecondController#method => "External"
所以,如果沒有定義控制器在模塊Foo
,它應該實例化外部電子郵件
我試圖創建一個文件foo.rb
:
# /app/controllers/foo.rb
module Foo
def self.const_missing(name)
"::#{name}".constantize
end
end
但是使用這個會讓rails忽略/app/controllers/foo/*.rb
(根本不需要它們)定義的所有類。
我該如何獲得這個?