Files
astuto/app/workflows/EnsureCoherentOrderingWorkflow.rb
2022-05-01 18:00:38 +02:00

22 lines
597 B
Ruby

class EnsureCoherentOrderingWorkflow
attr_accessor :entity_classname, :column_name
def initialize(entity_classname: "", column_name: "")
@entity_classname = entity_classname
@column_name = column_name
end
def run
column_name_sanitized = ActiveRecord::Base.connection.quote_column_name(column_name)
entity_records = entity_classname.order("#{column_name_sanitized} ASC")
entity_records.each_with_index do |entity_record, order|
entity_record[column_name] = order
end
entity_classname.transaction do
entity_records.each(&:save!)
end
end
end