我有一个带有 2 个模型的 Rails 5 应用程序:User
&Application
用户可以通过应用程序模型应用到另一个用户
当用户 1 到用户 2 创建应用程序时,两个用户都可以在他们的Application#index
视图中看到它。
每个用户都可以删除一个应用程序,但这不得影响所涉及的第二个用户的可见性。
例子 :
- 用户 1 申请用户 2
- 用户 1 和用户 2 拥有应用程序内部
Application#index
视图 - 用户 1 软删除应用程序
- 用户 1 看不到应用程序
Application#index
- 用户 2 仍然可以在
Application#index
处理这种情况的最正确方法是什么?
- 创建 2 列
sender_deleted
&并用 date +为索引receiver_deleted
填充它们scope {sender_deleted: nil }
- 在 Application 中为每个用户创建一个条目,然后只检索每个用户的条目?
- 另一种方式 ?
第二种方式似乎是正确的,但表中唯一不同的信息是删除日期,所以它似乎有点多余。
请注意,我在我的其他模型中使用 Paranoia gem 进行常规软删除,这在第一种解决方案中是不可能的,但在第二种解决方案中是可能的,因为只需要一列来将用户定义为已删除。