使用嵌套类时哪个类继承

时间:2016-10-17 03:37:43

标签: ruby

class Admin::ApplicationController < ApplicationController
  def index
  end
end

当我使用嵌套类时会继承哪个类?

class Admin < ApplicationController
  class ApplicationController
  end
end

class Admin 
  class ApplicationController < ApplicationController
  end
end

我认为第二个是获胜者,因为我理解的Admin::ApplicationController < ApplicationController是获取ApplicationController Admin命名空间并使其继承自ApplicationController

1 个答案:

答案 0 :(得分:1)

如果问题是这一行的等价物:

class Admin::ApplicationController < ApplicationController

然后你的第二个假设是正确的,它相当于:

class Admin 
  class ApplicationController < ApplicationController
  end
end

但很少有注释:

  1. 您当前的设计暴露了错误的命名
  2. 为什么不让Admin成为一个模块而不是一个类?
  3. 更喜欢使用显式表单而不是嵌套表单 - 您永远不会感到困惑。
  4. 请参阅this thread,了解两种类别定义之间嵌套级别的差异。