Sha256: b1a290ee227771739661bc3febe6707c2668dc1f73ebf86f9a970481e5bf6109

Contents?: true

Size: 863 Bytes

Versions: 1

Compression:

Stored size: 863 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.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

1 entries across 1 versions & 1 rubygems

Version Path
publify_core-9.1.0 db/migrate/115_drops_categories_for_tags.rb