首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计软性删除记录的问题。知道吗,怎么修?

设计软性删除记录的问题。知道吗,怎么修?
EN

Stack Overflow用户
提问于 2019-05-29 14:29:19
回答 2查看 356关注 0票数 1

我使用丢弃 gem进行删除。一旦用户被软删除,用户仍然可以收到忘记密码的电子邮件。因为设计密码控制器不关心它的软删除还是不?

我使用的设计模块如下,似乎,我可能需要修复所有模块:-

  • *可确认,
  • *可收回,
  • *可超时,
  • *可跟踪
  • *可锁
  • *可认证

虽然我可以通过在用户模型中重写find_for_authentication方法来解决可验证的登录问题,但它似乎不适用于其他设计模块。

知道吗,我怎么才能用设计来解决软删除问题?

我使用的是设计(4.6.2)、丢弃(1.0.0)、Rails 5.1.6.2

EN

回答 2

Stack Overflow用户

发布于 2019-05-29 15:40:45

您可以使用默认范围,例如:

代码语言:javascript
复制
class User
  ...
  default_scope -> { kept }
  ...
end

其他丢弃作用域(如丢弃和with_discarded )应该继续工作,因为它们在同一列(discard_column)上操作,因此它们将覆盖默认作用域。这样,就没有必要覆盖任何设计方法

票数 1
EN

Stack Overflow用户

发布于 2019-05-30 08:31:05

最后,我可以通过在user.rb中重写以下方法来修复它。任何其他人,如果面临同样的问题,都可以通过以下方式解决:

代码语言:javascript
复制
# Override to add condition to ignore soft deleted users
def self.find_first_by_auth_conditions(conditions, opts = {})
  opts.reverse_merge!(discarded_at: nil)

  super
 end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56362952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档