Skip to content

Commit 14d3688

Browse files
Defer loading SettingObject until ActiveRecord is loaded (#119)
The gem was requiring `rails-settings/setting_object` at the top level, which defines an ActiveRecord::Base subclass and causes ActiveRecord to load too early. This interferes with Rails’ lazy-loading behavior (eg. preventing new framework defaults from being applied correctly). Moving the require statement into the `ActiveSupport.on_load(:active_record)` block ensures it loads only when ActiveRecord is ready.
1 parent 8a18af8 commit 14d3688

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

lib/rails-settings.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
require 'rails-settings/setting_object'
21
require 'rails-settings/configuration'
32
require 'rails-settings/base'
43
require 'rails-settings/scopes'
54

65
ActiveSupport.on_load(:active_record) do
6+
require 'rails-settings/setting_object'
7+
78
ActiveRecord::Base.class_eval do
89
def self.has_settings(*args, &block)
910
RailsSettings::Configuration.new(*args.unshift(self), &block)
@@ -12,4 +13,4 @@ def self.has_settings(*args, &block)
1213
extend RailsSettings::Scopes
1314
end
1415
end
15-
end
16+
end

0 commit comments

Comments
 (0)