Я хочу иметь возможность уничтожить запись базы данных, если она не проходит проверку уникальности при обновлении ее атрибутов. Например, если я пытаюсь обновить поле записи на другое значение, которое имеет проверку уникальности и уже существует в другой записи в базе данных, исходный объект, который обновляется, должен быть уничтожен.
Я пытался использовать обратный вызов after_validation
для вызова функции, которая уничтожает объект, однако ActiveRecord продолжает откат и возвращает false, и я не знаю почему. Я думаю, что это может быть связано с проверкой уникальности, однако я не уверен.
Я использую Rails 5 и ActiveRecord для взаимодействия с базой данных.
Ниже приведен пример:
class Question
validates :name, presence: true, uniqueness: true
after_validation :destroy
def destroy
if self.errors.any?
self.destroy
end
end
Проверка выполняется только в одном поле объекта