lib/kithe/engine.rb in kithe-2.6.1 vs lib/kithe/engine.rb in kithe-2.7.0
- old
+ new
@@ -13,9 +13,28 @@
# not auto-loaded, let's just load it for backwards compat though
require "kithe/config_base"
module Kithe
class Engine < ::Rails::Engine
+
+ # Rails Single-table-inheritance auto-load workaround, further worked around
+ # for Rails 7.
+ #
+ # https://github.com/rails/rails/issues/46625
+ # https://github.com/rails/rails/issues/45307
+ #
+ # Descendants wont' be pre-loaded during initialization, but this is the best
+ # we can do.
+ initializer ("kithe.preload_single_table_inheritance") do
+ unless false && Rails.configuration.cache_classes && Rails.configuration.eager_load
+ Rails.configuration.to_prepare do
+ Kithe::Model.preload_sti unless Kithe::Model.preloaded
+ rescue ActiveRecord::NoDatabaseError, ActiveRecord::StatementInvalid => e
+ Rails.logger.debug("Could not pre-load Kithe::Models Single-Table Inheritance descendents: #{e.inspect}")
+ end
+ end
+ end
+
config.generators do |g|
g.test_framework :rspec, :fixture => false
g.fixture_replacement :factory_bot, :dir => 'spec/factories'
g.assets false
g.helper false