Создание цикла внутри метода, который отслеживает переменную n - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь удалить пользователей и их электронные письма из базы данных, и вместо того, чтобы полностью удалить пользователя, я решил мягко удалить пользователя, перезаписав его имя пользователя и электронную почту на случай, если они захотят снова зарегистрироваться в будущем.Пользователи не могут иметь повторяющиеся электронные письма, поэтому мне приходится каждый раз перезаписывать уникальное электронное письмо.

Метод мягкого удаления и перезаписи имени пользователя и электронной почты для учетных записей выглядит следующим образом:

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

Но не уверен, что это будет лучший способ реализовать эту функцию.

1 Ответ

0 голосов
/ 30 мая 2018

У вас уже есть уникальный счетчик ... идентификатор записи.

update_attribute(:email, ("DeletedUserEmail"+(id.to_s)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...