ruby-on-rails - Rails 4+ 最佳实践 : Delete parent while keeping children

标签 ruby-on-rails ruby-on-rails-4

我想保留子记录和层次结构,即使父级被删除。我看到两个选项:

  • 保留现有父级并使用“deleted_at”字段来指示
    parent 本身是不活动的,但关系仍然存在。这将导致许多有效地死掉的父记录被永久存储。嗯。
  • 将所有废弃的子记录分配给一个通用的“收集器”僵尸父记录。我更喜欢这个,但是您会将历史记录丢失到子记录的原始来源。

  • 我没有 Rails 经验,无法预见这两种方法中的哪一种是最明智的选择,或者可能有完全不同的解决方案。

    SO告诉我这似乎是一个主观问题,他们可能会关闭它。我希望不会,因为我确信这也是其他人也有的问题。

    最佳答案

    在我看来,您基本上是在询问“软删除”功能。当我想要这种行为时,我通常会添加一个 active默认为 true 的属性.我还添加了 active模型的范围,所以我可以做一些类似 Salon.active方便地获取所有事件的内容。

    所以我想我的答案是我会做类似#1 的事情,我称之为软删除。想法#2对我来说似乎很疯狂。

    关于ruby-on-rails - Rails 4+ 最佳实践 : Delete parent while keeping children,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28568050/

    相关文章:

    ruby-on-rails - 如何查看对 ActiveResource 请求的 HTTP 响应?

    ruby-on-rails - Rails join where 查询关联模型和父模型

    mysql - 在执行之前记录查询

    ruby-on-rails - 如何在功能测试中使用 Rspec 和 Capybara 测试 cookie?

    ruby-on-rails - form_for - Ruby on Rails

    ruby-on-rails - request.env ['omniauth.auth' ] 在 Ruby on Rails 中为零

    mysql - 显示数组时出错

    ruby-on-rails - rails 每个丢弃项目为零

    ruby-on-rails - 未通过 Rails 4 中的 image_tag 在生产中提供的图像

    ruby-on-rails - 安装bcrypt(3.1.11)时发生错误,并且Bundler无法继续。