diff --git a/app/controllers/hacks_controller.rb b/app/controllers/hacks_controller.rb index 4465d515d..c9e9097f8 100644 --- a/app/controllers/hacks_controller.rb +++ b/app/controllers/hacks_controller.rb @@ -48,7 +48,9 @@ class HacksController < ApplicationController hack.save! # 创建测试集与代码 hack.hack_sets.create!(hack_sets_params) - hack.hack_codes.create!(hack_code_params.merge(modify_time: Time.now)) + hack_codes = hack.hack_codes.new(hack_code_params) + hack_codes.modify_time = Time.now + hack_codes.save! end render_ok({identifier: hack.identifier}) rescue Exception => e @@ -67,10 +69,8 @@ class HacksController < ApplicationController # 新建 @hack.hack_sets.create!(hack_sets_params) # 更新代码 - if params[:hack_codes][:code] != @hack.code - hack_code_params = hack_code_params.merge(modify_time: Time.now) - end - @hack.hack_codes.create!(hack_code_params) + code_params = params[:hack_codes][:code] != @hack.code ? hack_code_params.merge(modify_time: Time.now) : hack_code_params + @hack.hack_codes.first.update_attributes!(code_params) end render_ok rescue Exception => e diff --git a/db/migrate/20191209111347_add_index_for_hack_codes.rb b/db/migrate/20191209111347_add_index_for_hack_codes.rb new file mode 100644 index 000000000..f1e655e21 --- /dev/null +++ b/db/migrate/20191209111347_add_index_for_hack_codes.rb @@ -0,0 +1,6 @@ +class AddIndexForHackCodes < ActiveRecord::Migration[5.2] + def change + HackCode.destroy_all + add_index :hack_codes, [:hack_id, :language], unique: true + end +end