在跟踪变量n的方法中创建循环

时间:2018-05-30 08:13:16

标签: ruby-on-rails ruby loops

我正在尝试从数据库中删除用户及其电子邮件,而不是完全删除用户,我选择软删除用户,覆盖用户名和电子邮件,以防将来再次注册。用户不能拥有重复的电子邮件,因此我每次都必须使用唯一的电子邮件进行覆盖。

软删除和覆盖帐户的用户名和电子邮件的方法如下所示:

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的计数,这与用户一样增加。

我如何以最好的方式解决这个问题?我考虑过制作for循环。我还查看了this,并发现了:

(0..5).each do |i|
  puts "Value of local variable is #{i}"
end

但不确定这是否是实现此功能的最佳方式。

1 个答案:

答案 0 :(得分:4)

你已经拥有一个独特的计数器......记录的ID。

update_attribute(:email, ("DeletedUserEmail"+(id.to_s)))