gpt4 book ai didi

ruby-on-rails - 使用 act_as_paranoid 插件进行软删除 - 验证怎么样?

转载 作者:行者123 更新时间:2023-12-03 15:45:45 24 4
gpt4 key购买 nike

我正在尝试使用 act_as_paranoid 插件来软删除记录。我早些时候使用数据库中的标志来管理它。我知道这个插件会从搜索中省略记录并查找记录是否被软删除。我想知道的是我是否在模型中进行了验证,例如 validates_uniqueness_of :email我删除了(软删除)了电子邮件为“prince@gmail.com”的记录。现在,当我尝试创建具有相同电子邮件的新用户时,验证是否有效并阻止创建新记录。还是会像查找时一样省略软删除的记录? (当然,我希望这种情况发生。)

最佳答案

acts_as_paranoid不重新实现 validates_uniqueness_of ,因此如果您使用电子邮件“prince@gmail.com”(软)删除了一条记录,则无法使用相同的电子邮件创建新记录。

解决这个问题的简单方法是向 validates_uniqueness_of 添加一个范围:

validates_uniqueness_of :email, :scope => :deleted_at

通过这种方式,您可以使用电子邮件“prince@gmail.com”删除任意数量的(软)记录,并且仍然使用相同的电子邮件创建新记录。

关于ruby-on-rails - 使用 act_as_paranoid 插件进行软删除 - 验证怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4957845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com