繁体   English   中英

类继承和Ruby模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM