【问题标题】:Soft delete records in EmberEmber 中的软删除记录
【发布时间】:2018-06-20 01:33:43
【问题描述】:

我在我的 Rails 后端使用 paranoia gem 来管理记录的软删除,但是在 Ember 模型上调用 destroyRecord() 会导致它被标记为已删除,从而将其隐藏在前端的集合中。在页面刷新时,记录会重新出现,因为它实际上仍然存在于备份中,尽管设置了 deleted_at 时间戳。

在 Ember 中处理此问题的最佳方法是什么?我希望能够调用deleteRecord() 并且没有设置deleted 标志,但仅适用于这个模型。

【问题讨论】:

    标签: ruby-on-rails ember.js ember-data soft-delete


    【解决方案1】:

    如果您的记录被软删除,那么当它们具有 deleted_at 时,它们不应出现在您的 API 响应中。如果是这样,那么您需要在后端进行一些更改,以便它们不会传递到前端。

    如果出于某种原因您希望将所有记录传递到前端,即使它们具有 deleted_at 日期,那么您应该实现一个计算属性,例如:

    isSoftDeleted: computed.notEmpty('deleted_at')
    

    您可以创建另一种混合两种类型的产品

    isGone: computed.or('isSoftDelete', 'isDeleted')
    

    【讨论】:

    • 感谢您的回复。我应该澄清一下...我有一个复选框来显示/隐藏已删除的记录,并且我确实在 API 响应中包含已删除的记录(通过 include 参数)我最终用 ember-custom-actions 和自定义操作解决了这个问题命名为softDelete 发出DELETE 请求而不将记录标记为已在存储中删除。效果很好。
    • 太棒了!我实际上并不熟悉ember-custom-actions。我现在要在我的应用程序中安装它:)
    猜你喜欢
    • 2023-03-26
    • 2014-05-06
    • 2010-09-09
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多