问题标签 [dependent-destroy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1890 浏览

ruby-on-rails - Rails 对 :dependent => :destroy 和 cascade delete/nullify/restrict 有什么作用

我正在尝试决定如何最好地为我的 rails 应用程序设置(如果有的话)外键约束。我有Response一个belongs_to模型Prompt。我想使用:dependent => :destroydestroy 调用Response属于已删除的每个,Prompt并且我正在尝试确定应该在外键上放置什么删除约束。

简而言之,我想得到关于如何最好地利用依赖对象的销毁方法和外键约束的建议,以确保 cruft 不会累积并反映所存储数据的逻辑结构。几个较早的问题,例如我应该使用 ON DELETE CASCADE、:dependent => :destroy 还是两者都使用?Rails: delete cascade vsdependent destroy问哪个更好,但他们并没有真正说明这两个选择如何相互作用以及它们以什么顺序被触发或在这一点上似乎含糊不清。

在我看来,考虑因素似乎分为几部分:

  1. 在从数据库中删除父对象之前是否:dependent => :destroy首先在依赖对象上调用destroy,所以即使我使用级联删除,仍然会在这些对象上调用destroy?
  2. 在从数据库中删除父对象之前(或在事务中)是否:dependent => :destroy从数据库中删除依赖对象?换句话说,如果我将级联设置为无效,那么数据库最终会在子对象被删除之前浪费地无效化对子对象的引用吗?

  3. 删除是由于包含在事务中的原始销毁和链接:dependent => :destroy选项而发出的,还是如果我不设置级联删除,不幸的是定时崩溃会在数据库中留下垃圾?

  4. 如果我使用限制作为外键 on_delete 选项,最后将:dependent => :destroy确保从数据库中删除父对象?
0 投票
0 回答
315 浏览

ruby-on-rails - Rails 3.2.20 - 销毁对象时 nil:NilClass 的未定义方法“名称”

在我的项目中,我使用游戏和ticker_activites 之间的一对多关系,就像这样

模型

删除游戏时...

看法

控制器

..我收到这个错误...

nil:NilClass 的未定义方法“名称”

参数

...并且游戏不会在生产中被删除(Heroku)。

我正在使用 Ruby 2.2.4 和 Rails 3.2.20。

任何想法如何解决这个问题?

编辑: 我的ticker_activity.rb:

全跟踪

错误日志

0 投票
1 回答
468 浏览

ruby-on-rails - 使用dependent: :destroy 在rails 上不起作用

我有一个带有这些关联的表 Bmp

和另一个表子区域

但是,当我尝试删除 bmp 时,它也应该删除我的分区,但它没有这样做。

我看不出我在哪里搞砸了,任何想法都非常感谢!

0 投票
1 回答
1088 浏览

ruby-on-rails - rails关联has_one,通过,依赖destroy不销毁相关对象

我在 Rails 站点中找不到涵盖此特定用例的文档。大概正常has_one会起作用(因为它是这样说的)。我还没试过。

给定两个模型和一个关联的连接表,我希望dependent: :destroy在破坏父模型时删除连接表行。

链式删除仅适用于 has_many 关系(此代码未在此处显示,但很容易修改模型以实现它)。

我相信会有一种基于使用具有唯一性约束的 has_many 的解决方法(可能在连接表上)。但我认为我不应该这样做!

IRB 重现:

楷模:

架构:

宝石文件:

0 投票
3 回答
1559 浏览

ruby-on-rails - Rails has_many 关联删除父对象但不删除子对象

场景是有两个模型,一个是 Room,另一个是 Tickets,关系是 Room has_many :tickets。

要求是,当房间正在删除门票时,不应删除。如何做到这一点,因为门票表有外键称为 room_id ?

假设如果我能够做到这一点,那么我将如何获得该特定门票的房间信息?

0 投票
2 回答
69 浏览

ruby-on-rails - rails 依赖破坏寻找不存在的表

我收到错误:

PG::UndefinedTable:错误:关系“profiles_rsl_codes”不存在第 5 行:

当我尝试销毁个人资料时。

我有一张桌子rsl_codes_profiles,在我的个人资料模型中我有

在我的RslCodesProfile课堂上,我有:

可能有一些迁移和撤消迁移和更改该表的名称,然后重新迁移以防可能产生影响。

对我的应用程序的全局搜索没有找到对这些应用程序的任何引用profiles_rsl_codesProfilesRslCodes单数。

错误回溯只指向我做@profile.destroy的地方,其余的跟踪都是框架的东西。

有任何想法吗?

0 投票
0 回答
21 浏览

ruby-on-rails - PG::ForeignKeyViolation: ERROR 关联对象的两级下降

我有三个相关的模型。如此定义的公寓、订阅和发票

删除公寓时出现以下错误

这意味着在对 Apartment 对象调用 destroy 方法时,相关订阅记录不会被删除。我会期待这条线

来解决这个问题。您对如何解决此问题有一些想法吗?谢谢!