Sha256: 8d2648f58a25fc291bee4fcd56e70bf993773c9fb032e4b6cdc0374e9ef1aca4
Contents?: true
Size: 748 Bytes
Versions: 16
Compression:
Stored size: 748 Bytes
Contents
class AddPositionToPages < ActiveRecord::Migration[5.1] def self.up unless column_exists? :pages, :position add_column :pages, :position, :integer Page.reset_column_information say_with_time("Putting all pages in a default order...") do ActiveRecord::Base.record_timestamps = false Page.where(parent_id: nil).each do |p| put_children_into_list(p) end ActiveRecord::Base.record_timestamps = true end end end def self.down remove_column :pages, :position end def self.put_children_into_list(page) page.children.order("title asc").each_with_index do |pg, idx| pg.update_attribute('position', idx + 1) put_children_into_list(pg) end end end
Version data entries
16 entries across 16 versions & 1 rubygems