require 'auto_html/task' # Rake task for rebuilding cached in DB auto_html columns values # Usage: rake auto_html:rebuild CLASS=[your model] # Where [your model] is the name of model which contains auto_html_for columns namespace :auto_html do desc "Rebuild auto_html columns" task :rebuild => :environment do klass = AutoHtml::Task.obtain_class.constantize suffix = AutoHtmlFor.auto_html_for_options[:htmlized_attribute_suffix] column_names = klass.respond_to?(:column_names) ? klass.column_names : klass.fields.keys observed_attributes = column_names.select { |c| c=~/#{suffix}$/ }.map { |c| c.gsub(/#{suffix}$/, '')} i = 0 klass.find_each do |item| observed_attributes.each do |field| item.send("#{field}=", item.send(field)) end item.save i += 1 end puts "Done! Processed #{i} items." end end