我正在尝试从数据库中删除用户及其电子邮件,而不是完全删除用户,我选择软删除用户,覆盖用户名和电子邮件,以防将来再次注册。用户不能拥有重复的电子邮件,因此我每次都必须使用唯一的电子邮件进行覆盖。
软删除和覆盖帐户的用户名和电子邮件的方法如下所示:
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
但不确定这是否是实现此功能的最佳方式。
答案 0 :(得分:4)
你已经拥有一个独特的计数器......记录的ID。
update_attribute(:email, ("DeletedUserEmail"+(id.to_s)))