From 6c7c6eaf6d03bbd47fdc61329b7d42415b13c65e Mon Sep 17 00:00:00 2001 From: p31729568 Date: Sat, 26 Oct 2019 14:35:17 +0800 Subject: [PATCH] competition: fix --- app/forms/competitions/save_team_form.rb | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/forms/competitions/save_team_form.rb b/app/forms/competitions/save_team_form.rb index 6b418eec8..491a5ea65 100644 --- a/app/forms/competitions/save_team_form.rb +++ b/app/forms/competitions/save_team_form.rb @@ -15,9 +15,13 @@ class Competitions::SaveTeamForm validate :check_teachers_enrollable def check_teachers_enrollable - if competition.teacher_enroll_forbidden? && teacher_ids.present? - errors.add(:teacher_ids, :enroll_forbidden) - return + if competition.teacher_enroll_forbidden? # 禁止老师报名 + if teacher_ids.present? + errors.add(:teacher_ids, :enroll_forbidden) + return + end + + return if creator.is_teacher? # 因为创建者有单独校验,所以这里跳过 end self.teacher_ids = teacher_ids.map(&:to_i) @@ -43,9 +47,13 @@ class Competitions::SaveTeamForm validate :check_members_enrollable def check_members_enrollable - if competition.member_enroll_forbidden? && member_ids.present? - errors.add(:member_ids, :enroll_forbidden) - return + if competition.member_enroll_forbidden? # 禁止学生报名 + if member_ids.present? + errors.add(:member_ids, :enroll_forbidden) + return + end + + return unless creator.is_teacher? # 因为创建者有单独校验,所以这里跳过 end self.member_ids = member_ids.map(&:to_i)