Я пытаюсь удалить пользователей и их электронные письма из базы данных, и вместо того, чтобы полностью удалить пользователя, я решил мягко удалить пользователя, перезаписав его имя пользователя и электронную почту на случай, если они захотят снова зарегистрироваться в будущем.Пользователи не могут иметь повторяющиеся электронные письма, поэтому мне приходится каждый раз перезаписывать уникальное электронное письмо.
Метод мягкого удаления и перезаписи имени пользователя и электронной почты для учетных записей выглядит следующим образом:
def soft_delete
n = 1
y = n + 1
update_attribute(:name, ("DeletedUser"))
update_attribute(:email, ("DeletedUserEmail"+(y.to_s)))
update_attribute(:deleted_at, Time.current)
end
Этоработает только для первого пользователя, который удаляет свою учетную запись.Второй пользователь получает сообщение об ошибке, что электронная почта уже существует.
Я пробовал разные способы реализации этого, чтобы y
сохранял счет переменной n
, которая увеличивается как у пользователей.
Как бы я поступил лучше всего?Я подумал сделать цикл.Я также просмотрел этот и наткнулся на:
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
Но не уверен, что это будет лучший способ реализовать эту функцию.