0

我的 Rails 应用中有 ApiKey 记录。它有一个 expires_at 日期时间列。

我正在尝试使用此回调使其过期:

before_find :expire_api_key
def expire_api_key
  if self.expired?
    self.destroy!  
  end
end

但是,我第一次尝试查找过期的 ApiKey 时,它仍然返回密钥。只有当我再次调用 find 时,它才会 raise RecordNotFound

这是有问题的,因为我不能让过期的 ApiKeys 工作。

4

1 回答 1

2

您可以自己引发错误:

if self.expired?
  self.destroy!
  raise ActiveRecord::RecordNotFound
end
于 2014-02-18T12:06:44.773 回答