Skip to content

Commit 493f018

Browse files
committed
fix: add implicit_order_column for Rails 8.1+ compatibility
Rails 8.1+ requires an implicit_order_column for models without a primary key to support ordering. Hierarchy tables don't have a primary key, so we set ancestor_id as the implicit order column.
1 parent ecd4999 commit 493f018

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

lib/closure_tree/support.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ def hierarchy_class_for_model
3333
hierarchy_class = parent_class.const_set(short_hierarchy_class_name, Class.new(model_class.superclass))
3434
model_class_name = model_class.to_s
3535
hierarchy_class.class_eval do
36+
# Rails 8.1+ requires an implicit_order_column for models without a primary key
37+
self.implicit_order_column = 'ancestor_id'
38+
3639
belongs_to :ancestor, class_name: model_class_name
3740
belongs_to :descendant, class_name: model_class_name
3841
def ==(other)

0 commit comments

Comments
 (0)