在我的 Rails 应用程序中。我有我的基本模型 - 用户。有很多与用户相关的对象。
Class User
has_many :contents, dependent: destroy
has_many :messages, dependent: destroy
has_many :ratings, dependent: destroy
has_many :groups, dependent: destroy
...
end
当我想从我的系统中删除用户(销毁用户对象)时,大约需要一分钟才能销毁其所有关联对象。处理此类案件的最佳方法是什么?
我想到的一种方法是:
在delayed_job 中销毁:
但是直到点用户对象在延迟作业中被销毁,这个用户不应该对其他人可见。通过在用户模型中删除标志而不获取结果来处理这种情况。但是我也使用 sphinx,并且需要确保这个用户也不会出现在 sphinx 结果中。
有没有更好的方法来处理这种情况?