PostgreSQL 检查时间戳字段是否为空

2023-11-29

我遵循了这些指示检查用户登录时是否被软删除。在下面的示例中,我可以检查布尔值:

Class User < ActiveRecord::Base
  def self.find_for_authentication(conditions)
    super(conditions.merge(:deleted_flag => false))
  end

我更喜欢时间戳(created_at)字段。如何检查该字段是否为空?数据库针对以下检查抛出错误:

super(conditions.merge(:deleted_at => false)) # also tried nil, "NULL" and "IS NULL"

当然,如果不修改设备,您就无法使用此解决方案。 Devise 会将您的条件直接发送到数据库,因此无法调用方法或使用像 squeel 这样的库(这将允许类似where{created_at == nil}.

您可以使用中提供的解决方案如何使用 Devise“软删除”用户,但错误消息将是:“您必须先确认您的帐户才能继续。”

将其添加到您的资源模型中:

  def inactive_message
    !!deleted_at ? :deleted : super
  end

并向您的语言环境添加一条消息:

en:
  devise:
    failure:
      deleted: "Your account was deleted."

我希望它有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 检查时间戳字段是否为空 的相关文章

随机推荐