У меня есть форма, которую учащиеся используют для оценки 6 классов от 1 до 6. Если они выбирают математику как «1» (самая сложная), то я не хочу, чтобы они могли выбирать другой предмет как самый сложный. , Форма, очевидно, даст им возможность выбрать «1» для каждого предмета, но я хочу использовать проверки для защиты от отправки формы, которая не следует инструкциям
Это фрагмент из формы
<div class="field">
<%= f.label(:math, "Mathp") %>
<%= f.select:math, 1..6 %> </br>
</div>
<div class="field">
<%= f.label(:french, "French") %>
<%= f.select:french, 1..6 %> </br>
</div>
Я собирался использовать такой метод проверки, но я не думаю, что логика его работает (т.е. он не защищает от всех возможных ситуаций), и, вероятно, это тоже дерьмовый (нефункциональный) код, потому что я только учусь кодировать (на самом деле я уже давно терплю неудачу). Можете ли вы предложить улучшения?
validates :rank_favorites
...
def rank_favorites
unless :math != :french && :french != :history && :history != :spanish && :spanish != :art && :art != :physed return false
end