File: lazy_load_hooks.rb [activesupport-3.0.5 Documentation]

Last Modified
  2021-11-13 06:27:50 +0000
Requires

## Description

lazy_load_hooks allows rails to lazily load a lot of components and thus making the app boot faster. Because of this feature now there is no need to require `ActiveRecord::Base` at boot time purely to apply configuration. Instead a hook is registered that applies configuration once `ActiveRecord::Base` is loaded. Here `ActiveRecord::Base` is used as example but this feature can be applied elsewhere too.

Here is an example where `on_load` method is called to register a hook.

    initializer "active_record.initialize_timezone" do
      ActiveSupport.on_load(:active_record) do
        self.time_zone_aware_attributes = true
        self.default_timezone = :utc
      end
    end

When the entirety of `activerecord/lib/active_record/base.rb` has been evaluated then `run_load_hooks` is invoked. The very last line of `activerecord/lib/active_record/base.rb` is:

    ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)