为了清楚起见,我决定将Rails应用程序拆分为不同的模块,作为其中的一部分,我希望每个模块都有自己的ApplicationController。所以我经历了为每个模块定义了一个应用程序控制器,如下所示:
module Login
class ApplicationController < ::ApplicationController
...
end
end
然后我在登录模块中创建一个不同的控制器:
module Login
class HomeController < ApplicationController
end
end
我的期望是,这将首先在Login模块中搜索应用程序控制器,但是从我看到它实际上继承了全局应用程序控制器(我在Login :: ApplicationController中做出的任何声明都没有被选中)。我已经四处搜索了一些关于此的信息,但是无法弄清楚为什么它在顶层名称空间中使用ApplicationController而不是在Login中使用ApplicationController。 HomeController从Login :: ApplicationController继承它可以正常工作,但是我想知道为什么它在没有Login ::前缀的情况下不起作用。
答案 0 :(得分:0)
尝试
module Login
class HomeController < Login::ApplicationController
end
end