ruby-on-rails - 在跟踪变量 n 的方法中创建循环
问题描述
我正在尝试从数据库中删除用户及其电子邮件,而不是完全删除用户,我选择软删除用户,覆盖他们的用户名和电子邮件,以防他们将来再次注册。用户不能有重复的电子邮件,所以我每次都必须用唯一的电子邮件覆盖。
软删除和覆盖帐户的用户名和电子邮件的方法如下所示:
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循环。我也浏览了这个,发现:
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
但不确定这是否是实现此功能的最佳方式。
解决方案
您已经有一个唯一的计数器……记录的 id。
update_attribute(:email, ("DeletedUserEmail"+(id.to_s)))
推荐阅读
- ios - Child 如何使用 Screen Time API 在一段时间内取消阻止应用程序
- angular11 - 从表单设置日期值时,Angular ng2-datepicker 抛出无效时间
- stm32 - 外部 Flash Loader 链接器脚本文件
- java - 如何从活动中调用片段方法?
- azure - 如何在 azure devops pipline 中为 py 脚本调用 repo 路径
- android - 如何在 Flutter 上正确访问应用图标?
- python - 我需要通过 boto3 Lambda 函数在新创建的实例的响应中获取公共 IPv4 地址和解密的密钥对吗?
- javascript - 如何使用正则表达式javascript比较对象中的动态字符串和静态字符串
- c# - .net 6.0 RijndaelManaged 加密不能正确解密?
- vscode-extensions - 如何从 VS 代码扩展中获取活动编辑器的验证结果?