You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# 执行示例 bundle exec rake migrate_exam_item:item args=2933
# 参数是试卷id, 不传参则是迁移所有的
desc " 迁移试卷库中的试题 "
namespace :migrate_exam_item do
if ENV [ 'args' ]
exam_id = ENV [ 'args' ] . split ( " , " ) [ 0 ] # 对应试卷的id
end
task item : :environment do
if exam_id . present?
exams = ExaminationBank . where ( id : exam_id )
else
exams = ExaminationBank . all
end
exams . each do | exam |
exam . examination_items . includes ( :container , :examination_item_choices , :examination_item_analysis , item_bank : [ :container , :item_choices , :item_analysis ] ) . each do | item |
item_bank = item . item_bank
if item_bank . present?
item . update ( name : item_bank . name )
if item . item_type == " PROGRAM "
if item . container . present? && item_bank . container . present?
item . container & . update ( name : item_bank . container . name , description : item_bank . container . description )
end
else
item . examination_item_choices . each_with_index do | choice , index |
bank_choice = item_bank . item_choices [ index ]
choice . update ( choice_text : bank_choice . choice_text ) if bank_choice . present?
end
end
item . examination_item_analysis & . update ( analysis : item_bank . analysis ) if item_bank . analysis . present?
end
puts item . id
end
end
end
end