• E
    Don't require "action_view/base" in action pack: · 88ee52f9
    Edouard CHIN 提交于
    - ### Problem
    
      ActionPack requires "action_view/base" at boot time, this
      causes a variety of issue that I described in detail in #38024.
    
      There is no real reason to require av/base in the
      ActionDispatch::Debugexceptions class.
    
      ### Solution
    
      Like any other components (such as ActiveRecord, ActiveJob...),
      ActionView::Base shouldn't be loaded at boot time.
    
      Here are the two main changes needed for this:
    
      1) Actionview has a special initializer that needs to run
         before the app is fully booted (adding a executor needs to be done
         before application is done booting)
      https://github.com/rails/rails/blob/63ec70e700e321b22e9baf2ad2d45cd3f4febc79/actionview/lib/action_view/railtie.rb#L81-L84
    
         That initializer used a lazy load hooks but we can't do that anymore
         because Action::Base view won't be triggered during booting process.
         When it will get triggered, (presumably on the first request),
         it's too late to add an executor.
    
      ------------------------------------------------
    
      2) Compare to other components, ActionView doesn't use `Base` for
         configuration flag. A lot of flags ares instead set on modules
         (FormHelper, FormTagHelper).
         The problem is that those module depends on AV::Base to be
         loaded, as otherwise configuration set by the user aren't applied.
         (Since the lazy load hooks hasn't been triggered)
         https://github.com/rails/rails/blob/63ec70e700e321b22e9baf2ad2d45cd3f4febc79/actionview/lib/action_view/railtie.rb#L66-L69
    
         We shouldn't wait for AB::Base to be loaded in order to set these
         configuration. However, we need to do it inside an
         `after_initialize` block in order to let application
         set it to the value they want.
    
      Closes #28538
    
      Co-authored-by: betesh <iybetesh@gmail.com>"
    88ee52f9
action_view.rb 2.9 KB