Guest User

Untitled

a guest
Aug 13th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.89 KB | None | 0 0
  1.   # removes hashtags with uppercase letters and re-attaches
  2.   # the posts to the lowercase version
  3.   task :rewire_uppercase_hashtags => :environment do
  4.     evil_tags = ActsAsTaggableOn::Tag.where("lower(name) != name")
  5.     puts "found #{evil_tags.count} tags to convert..."
  6.  
  7.     evil_tags.each_with_index do |tag, i|
  8.       good_tag = ActsAsTaggableOn::Tag.find_or_create_by_name(tag.name.downcase)
  9.       puts "++ '#{tag.name}' has #{tag.taggings.count} records attached"
  10.       deleteme = []
  11.  
  12.       tag.taggings.each do |tagging|
  13.         deleteme << tagging
  14.       end
  15.  
  16.       puts deleteme
  17.  
  18.       deleteme.each do |tagging|
  19.         tagging.reload
  20.         tag.taggings.delete(tagging)
  21.         good_tag.taggings << tagging
  22.       end
  23.  
  24.       puts "-- converted '#{tag.name}' to '#{good_tag.name}' with #{deleteme.count} records"
  25.       puts "## #{i} tags processed" if (i % 50 == 0)
  26.     end
  27.   end
Add Comment
Please, Sign In to add comment