class ModifyKeContentsForMarkdown < ActiveRecord::Migration[5.2] include ActionView::Helpers::SanitizeHelper def change def ke_transform_to_md content return content if content.blank? s_contents = sanitize(content, tags: %w(img a span table td tr tbody pre), attributes: %w(src href target style)) s_contents.gsub(">\n<", "><").gsub(/^\n/, "").gsub("    ", "").gsub(/(\n)+/, "
") .gsub("\t", " ").gsub("\n", "").gsub(" ", " ").gsub(/()+/, "
") end # 课程讨论区 MessageDetail.find_each do |m| content = ke_transform_to_md m.content m.update_column(:content, content) end # 试卷的标题 ExerciseQuestion.find_each do |eq| question_title = ke_transform_to_md eq.question_title eq.update_column(:question_title, question_title) end # 试卷的答案 ExerciseStandardAnswer.find_each do |esa| answer_text = ke_transform_to_md esa.answer_text esa.update_column(:answer_text, answer_text) end # 试卷题库的问题标题 ExerciseBankQuestion.find_each do |ebq| question_title = ke_transform_to_md ebq.question_title ebq.update_column(:question_title, question_title) end # 试卷答案 ExerciseBankStandardAnswer.find_each do |ebsa| answer_text = ke_transform_to_md ebsa.answer_text ebsa.update_column(:answer_text, answer_text) end # 问卷的标题 PollQuestion.find_each do |pq| question_title = ke_transform_to_md pq.question_title pq.update_column(:question_title, question_title) end end end