diff --git a/app/controllers/gtopic_banks_controller.rb b/app/controllers/gtopic_banks_controller.rb index 002bc9848..da56c7acf 100644 --- a/app/controllers/gtopic_banks_controller.rb +++ b/app/controllers/gtopic_banks_controller.rb @@ -8,8 +8,11 @@ class GtopicBanksController < ApplicationController end def update - @bank.update_attributes(gtopic_bank_params) - Attachment.associate_container(params[:attachment_ids], @bank.id, @bank.class) if params[:attachment_ids] + ActiveRecord::Base.transaction do + @bank.update_attributes(gtopic_bank_params) + Attachment.associate_container(params[:attachment_ids], @bank.id, @bank.class) if params[:attachment_ids] + normal_status(0, "更新成功") + end end private diff --git a/app/controllers/task_banks_controller.rb b/app/controllers/task_banks_controller.rb index 7785d6d94..9de4f1faf 100644 --- a/app/controllers/task_banks_controller.rb +++ b/app/controllers/task_banks_controller.rb @@ -8,8 +8,17 @@ class TaskBanksController < ApplicationController end def update - @bank.update_attributes(gtask_bank_params) - Attachment.associate_container(params[:attachment_ids], @graduation_topic.id, @graduation_topic.class) if params[:attachment_ids] + ActiveRecord::Base.transaction do + begin + @bank.update_attributes(gtask_bank_params) + Attachment.associate_container(params[:attachment_ids], @bank.id, @bank.class) if params[:attachment_ids] + normal_status(0, "更新成功") + rescue Exception => e + uid_logger(e.message) + tip_exception(e.message) + raise ActiveRecord::Rollback + end + end end private @@ -24,9 +33,16 @@ class TaskBanksController < ApplicationController end def gtask_bank_params - tip_exception("name参数不能为空") if params[:gtopic_bank][:name].blank? - tip_exception("description参数不能为空") if params[:gtopic_bank][:description].blank? - params.require(:gtopic_bank).permit(:name, :topic_type, :topic_source, :topic_property_first, :description, - :topic_property_second, :source_unit, :topic_repeat, :province, :city) + tip_exception("name参数不能为空") if params[:gtask_bank][:name].blank? + tip_exception("description参数不能为空") if params[:gtask_bank][:description].blank? + if @bank.homework_type == 3 + tip_exception("base_on_project参数不能为空") if params[:gtask_bank][:base_on_project].nil? + tip_exception("min_num参数不能为空") if params[:gtask_bank][:min_num].blank? + tip_exception("max_num参数不能为空") if params[:gtask_bank][:max_num].blank? + tip_exception("最小人数不能小于1") if params[:gtask_bank][:min_num].to_i < 1 + tip_exception("最大人数不能小于最小人数") if params[:gtask_bank][:max_num].to_i < params[:gtask_bank][:min_num].to_i + end + params.require(:gtask_bank).permit(:name, :description) if @bank.task_type == 1 + params.require(:gtask_bank).permit(:name, :description, :min_num, :max_num, :base_on_project) if @bank.task_type == 2 end end diff --git a/config/routes.rb b/config/routes.rb index c160cf938..8f357eb0b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -642,6 +642,7 @@ Rails.application.routes.draw do end resources :gtopic_banks + resources :task_banks resources :attachments