Sha256: c4a06fceb97175ecac1ba011cfe1a4aac540b2169703230e626c7c784f57223d

Contents?: true

Size: 886 Bytes

Versions: 2

Compression:

Stored size: 886 Bytes

Contents

class DropsCategoriesForTags < ActiveRecord::Migration[4.2]
  class Categorization < ActiveRecord::Base
    belongs_to :article
    belongs_to :category
  end

  class Category < ActiveRecord::Base
    has_many :categorizations
    has_many :articles, through: :categorizations
  end

  def up
    # First, we migrate categories into tags
    Category.find_each do |cat|
      # Does a tag with the same permalink exist?
      tag = Tag.find_or_create_by(name: cat.permalink) do |tg|
        tg.display_name = cat.name
      end

      redirect = Redirect.create(from_path: "category/#{cat.permalink}",
                                 to_path: File.join(Blog.first.base_url, 'tag', tag.name))
      cat.articles.each do |article|
        article.tags << tag
        article.save
      end
    end

    drop_table :categorizations
    drop_table :categories
  end

  def down
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
publify_core-9.0.1 db/migrate/115_drops_categories_for_tags.rb
publify_core-9.0.0 db/migrate/115_drops_categories_for_tags.rb