【问题标题】:Rails dependent destroy and really destroy an acts_aS_paranoid objectRails 依赖销毁并真正销毁acts_aS_paranoid 对象
【发布时间】:2016-11-07 09:27:24
【问题描述】:

我有两个模型文章和书签。两者都被定义为acts_as_paranoid 对象。它们之间的关系是

article.rb

  has_many :bookmarks, foreign_key: 'article_doi', primary_key: 'doi', dependent: :destroy

书签.rb

  belongs_to :article, foreign_key: 'article_doi', primary_key: 'doi'

现在我想真正删除一个书签对象并删除依赖的书签对象。

@article.destroy!

并检查

@article.bookmarks

没有删除文章或其书签。我怎样才能真正将它们从数据库及其关联的书签中删除?

【问题讨论】:

  • @article@articles 是同一个对象吗? @article.destroy! 的结果是什么?
  • 检查我编辑的问题
  • 如果你需要完全从你的数据库中删除,为什么你有acts_as_paranoid?
  • 并非在所有情况下都从数据库中删除。有时我会删除,有时我会完全从数据库中删除

标签: ruby-on-rails ruby associations


【解决方案1】:

要从数据库中永久销毁,您可以使用really_destroy! 方法。 尝试使用@article.really_destroy!

https://github.com/rubysherpas/paranoia#usage

【讨论】:

  • 它也会正确地破坏它的关联吗?
  • 是的。如果您在关联中有dependent: destroy
  • 不确定我的问题是否清楚,让我再问一次。它真的会硬删除它的关联吗?我也有一些记录的简单删除回调,是否也会被硬删除。感谢您的帮助
  • 是的,所有相关记录都将被硬删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
相关资源
最近更新 更多