ActiveTorrent::BaseController
Inherits ActionController::Base < CRails::Routes::UrlHelpers < ActionController::ConditionalGet < ActionView::Helpers < ActionView::Helpers::RecordIdentifier < ActionView::Helpers::ViteHelper < ActionView::Helpers::CsrfHelper < ActionView::Helpers::CacheHelper < ActionView::Helpers::FormHelper < ActionView::Helpers::FormTagHelper < ActionView::Helpers::FormOptionsHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::FormOptionsHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::FormTagHelper < ActionView::Helpers::FormOptionsHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::EmbedFileHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::AssetTagHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::UrlHelper < ActionView::Helpers::TagHelper < ActionView::Helpers::NumberHelper < ActiveSupport::NumberHelper < ActionView::Helpers::TextHelper < ActionView::Helpers::TagHelper < ERB::Rendering < ActionController::DataStreaming < ActionController::RequestForgeryProtection < ActionController::AllowBrowser < ActionController::RateLimiting < Reference < Object
abstract — обязательный обход бага компилятора Crystal: промежуточный класс-наследник ActionController::Base без abstract получает от end-of-program кодегена (base.cr, macro finished) собственный пустой __run_action; в программе, где есть и Live-контроллер, это роняет компилятор (Nil assertion failed, semantic phase). abstract-классы кодеген пропускает ({% unless t.abstract? %}) — см. PLAN.md шарда.