Вы можете добавить пользовательскую проверку:
class Something
validate :fields_a_and_b_are_different
def fields_a_and_b_are_different
if self.a == self.b
errors.add(:a, 'must be different to b')
errors.add(:b, 'must be different to a')
end
end
Она будет вызываться каждый раз, когда проверяется ваш объект (либо явно, либо при сохранении с проверкой), и добавит ошибку в оба поля.Возможно, вы захотите, чтобы ошибка в обоих полях отображалась по-разному в форме.
В противном случае вы можете просто добавить базовую ошибку:
errors.add(:base, 'a must be different to b')