类继承和Ruby模块

时间:2012-09-26 19:28:36

标签: ruby-on-rails ruby

为了清楚起见,我决定将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 ::前缀的情况下不起作用。

1 个答案:

答案 0 :(得分:0)

尝试

module Login
  class HomeController < Login::ApplicationController

  end
end