Этот код проверки рельсов такой уродливый, и должен быть лучший способ сделать это.
Вкратце, мой пользователь вводит данные из результатов испытаний.Каждый конкретный тест имеет 4 измерения.Обычно пользователь вводит все 5 тестов (20 измерений), но это не всегда требуется.Мне просто нужно проверить, что если тестировщик начал вводить данные для теста, он вводит все 4 измерения в этом тесте.
(Позже я сделаю класс проверки, но я использую это для начала)
Редактировать: чтобы уточнить, «тесты» - это измерения материалов (не связанные с программным обеспечением).тестеры записывают данные на бумаге, а потом вводят в это приложение
def must_input_full_test
#test Top Section
if top_section_1 || top_section_2 || top_section_3 || top_section_4
found_at_least_one = true
#at least one is present; now check if any are empty
if top_section_1.nil?
errors.add :top_section_1, "Must fill in four values for a test"
end
if top_section_2.nil?
errors.add :top_section_2, "Must fill in four values for a test"
end
if top_section_3.nil?
errors.add :top_section_3, "Must fill in four values for a test"
end
if top_section_4.nil?
errors.add :top_section_4, "Must fill in four values for a test"
end
end
#test Bottom Section
if bottom_section_1 || bottom_section_2 || bottom_section_3 || bottom_section_4
found_at_least_one = true
#at least one is present; now check if any are empty
if bottom_section_1.nil?
errors.add :bottom_section_1, "Must fill in four values for a test"
end
if bottom_section_2.nil?
errors.add :bottom_section_2, "Must fill in four values for a test"
end
if bottom_section_3.nil?
errors.add :bottom_section_3, "Must fill in four values for a test"
end
if bottom_section_4.nil?
errors.add :bottom_section_4, "Must fill in four values for a test"
end
end
#test Bottom
if bottom_1 || bottom_2 || bottom_3 || bottom_4
found_at_least_one = true
#at least one is present; now check if any are empty
if bottom_1.nil?
errors.add :bottom_1, "Must fill in four values for a test"
end
if bottom_2.nil?
errors.add :bottom_2, "Must fill in four values for a test"
end
if bottom_3.nil?
errors.add :bottom_3, "Must fill in four values for a test"
end
if bottom_4.nil?
errors.add :bottom_4, "Must fill in four values for a test"
end
end
#test Middle Section
if middle_1 || middle_2 || middle_3 || middle_4
found_at_least_one = true
#at least one is present; now check if any are empty
if middle_1.nil?
errors.add :middle_1, "Must fill in four values for a test"
end
if middle_2.nil?
errors.add :middle_2, "Must fill in four values for a test"
end
if middle_3.nil?
errors.add :middle_3, "Must fill in four values for a test"
end
if middle_4.nil?
errors.add :middle_4, "Must fill in four values for a test"
end
end
#test Top
if top_1 || top_2 || top_3 || top_4
found_at_least_one = true
#at least one is present; now check if any are empty
if top_1.nil?
errors.add :top_1, "Must fill in four values for a test"
end
if top_2.nil?
errors.add :top_2, "Must fill in four values for a test"
end
if top_3.nil?
errors.add :top_3, "Must fill in four values for a test"
end
if top_4.nil?
errors.add :top_4, "Must fill in four values for a test"
end
end
if !found_at_least_one
errors.add :middle_1, "Must fill in at least some test data"
end
end