Чтобы прямо ответить на ваш вопрос ActionController
это не класс контроллера, это модуль пространства имен, который питает весь стек контроллера. Вы не будете взаимодействовать с модулем ActionController
во время типичной разработки Rails. ActionController::Base
на самом деле класс, от которого наследуются контроллеры. Вот почему вы не можете наследовать от ActionController
.
Но я думаю, что здесь есть два контроллера. ActionController::Base
и ApplicationController
. Я думаю, вы можете ошибочно принять ApplicationController
за ActionController
без ::Base
.
ActionController::Base
- это основной класс контроллеров, откуда берутся все ваши функции Rails. ApplicationController
- это обобщенный контроллер, к которому вы можете добавлять методы и наследовать все остальные контроллеры Rails.
Вы можете сделать следующее, чтобы использовать другую компоновку в одном из ваших контроллеров:
class AuthenticationController < ApplicationController
layout 'authentication'
end
Вы можете использовать AuthenticationController
напрямую или получить новые контроллеры, наследуемые от AuthenticationController
.