belongs_to关系在无效时不触发after_update



在我正在工作的项目中,我有2个模型,用户。Rb和job.rb.

用户模型与作业相关,一个用户可以有多个作业请求,一个用户可以被多个作业雇用,但每个作业只能雇用一个用户。

User.rb:

has_many :job, dependent: :nullify, :foreign_key => "hired_contractor_id"

Job.rb:

belongs_to :hired_contractor, class_name: "User", optional: true

预期行为:当一个用户被删除时(该用户被雇佣在一个作业中),我想更改作业状态。

为此,我正在尝试使用after_update或after_save,但没有一个是由belongs_to关系上的无效效果触发的。

我错过了什么?

我最终删除了dependent: :nullify,因为我发现它不会触发任何父回调。

如果你试图更新before_destroy (user.rb)中的每个job,你将找不到任何job,因为关系已经消失了。

我的解决方案是删除dependent: :nullify,所以我仍然有工作关系,以找到他们在一个before_destroy对用户。

手动更新每个job:status和:hired_contractor_id列。不是最好的解决方案,但最终是可行的。

相关内容

  • 没有找到相关文章

最新更新