У меня есть модель слишком много пользовательские проверки.Я использовал слишком много пользовательских валидаций в модели?
Я не знаю, хорошо ли использовать пользовательские проверки таким образом?
class Lesson
validates :start_time, presence: true
validates :end_time, presence: true
# other validates use rails builtin
validate :time_range_not_overlap_with_lessons_of_same_class
validate :time_range_not_overlap_with_lessons_of_same_teacher
validate :time_range_not_overlap_with_awj_lessons_of_same_teacher
validate :is_conflict_with_students_cls_lessons
validate :not_conflict_with_awj_lessons_of_students
end
Моей пользовательская валидация (как time_range_not_overlap_with_lessons_of_same_teacher
) запустит DB запросы. Так что я удивляюсь, что это правильный способ сделать эти проверки? Если нет, я должен создать метод validate_params
для замены этих пользовательских проверок и вызывать каждый раз перед сохранением записи, например, кода ниже, или есть ли лучшие способы сделать это?
def validate_params
time_range_not_overlap_with_lessons_of_same_class
# other codes here
end
if lesson.validate_params
if lesson.save
#do something
else
#other logic here
end
end