007_add_permalink.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:1k
源码类别:

Ajax

开发平台:

Others

  1. class AddPermalink < ActiveRecord::Migration
  2.   class BareArticle < ActiveRecord::Base
  3.     include BareMigration
  4.     def stripped_title(title)
  5.       # this is a copynpaste of the routine in article.rb
  6.       # so the one in article.rb can change w/o breaking this.
  7.       self.title.gsub(/<[^>]*>/,'').to_url
  8.     end
  9.   end
  10.   class BareCategory < ActiveRecord::Base
  11.     include BareMigration
  12.     def stripped_name
  13.       # copynpaste from category.rb
  14.       self.name.to_url
  15.     end
  16.   end
  17.   def self.up
  18.     STDERR.puts "Adding categories permalink"
  19.     modify_tables_and_update([:add_column, BareCategory, :permalink, :string],
  20.                              [:add_index,  BareCategory, :permalink]) do
  21.       BareCategory.find_and_update {|c| c.permalink ||= c.stripped_name }
  22.       BareArticle.find_and_update  {|a| a.permalink ||= a.stripped_title }
  23.     end
  24.   end
  25.   def self.down
  26.     STDERR.puts "Removing categories permalink"
  27.     remove_index :categories, :permalink
  28.     remove_column :categories, :permalink
  29.   end
  30. end