[英]Class Inheritance and Ruby Modules
为了清楚起见,我决定将Rails应用程序分解为不同的模块,作为其中的一部分,我希望每个模块都具有自己的ApplicationController。 因此,我遍历并为每个模块定义了一个应用程序控制器,如下所示:
module Login
class ApplicationController < ::ApplicationController
...
end
end
然后,我将在登录模块中创建另一个控制器:
module Login
class HomeController < ApplicationController
end
end
我的期望是,这将首先在Login模块中搜索应用程序控制器,但是从我所看到的来看,它实际上是在继承全局应用程序控制器(我在Login :: ApplicationController中所做的任何声明都没有被选择)。 我已经搜索了有关此内容的一些信息,但是还无法弄清为什么它在顶级名称空间而不是Login中使用ApplicationController。 让HomeController从Login :: ApplicationController继承可以很好地工作,但是我想了解为什么没有将来的Login ::前缀就无法工作。
尝试
module Login
class HomeController < Login::ApplicationController
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.