Skip to content

Commit 35c29cc

Browse files
committed
Wait for ActiveRecord to be fully loaded before adding models
1 parent 5102d4e commit 35c29cc

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

lib/flipper/adapters/active_record.rb

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,31 @@ module Adapters
77
class ActiveRecord
88
include ::Flipper::Adapter
99

10-
# Abstract base class for internal models
11-
class Model < ::ActiveRecord::Base
12-
self.abstract_class = true
13-
end
10+
ActiveSupport.on_load(:active_record) do
11+
# Abstract base class for internal models
12+
class Model < ::ActiveRecord::Base
13+
self.abstract_class = true
14+
end
1415

15-
# Private: Do not use outside of this adapter.
16-
class Feature < Model
17-
self.table_name = [
18-
Model.table_name_prefix,
19-
"flipper_features",
20-
Model.table_name_suffix,
21-
].join
16+
# Private: Do not use outside of this adapter.
17+
class Feature < Model
18+
self.table_name = [
19+
Model.table_name_prefix,
20+
"flipper_features",
21+
Model.table_name_suffix,
22+
].join
2223

23-
has_many :gates, foreign_key: "feature_key", primary_key: "key"
24-
end
24+
has_many :gates, foreign_key: "feature_key", primary_key: "key"
25+
end
2526

26-
# Private: Do not use outside of this adapter.
27-
class Gate < Model
28-
self.table_name = [
29-
Model.table_name_prefix,
30-
"flipper_gates",
31-
Model.table_name_suffix,
32-
].join
27+
# Private: Do not use outside of this adapter.
28+
class Gate < Model
29+
self.table_name = [
30+
Model.table_name_prefix,
31+
"flipper_gates",
32+
Model.table_name_suffix,
33+
].join
34+
end
3335
end
3436

3537
VALUE_TO_TEXT_WARNING = <<-EOS

0 commit comments

Comments
 (0)