当前位置:  开发笔记 > 后端 > 正文

它是如何工作的 - "belongs_to:user,dependent :: destroy`

如何解决《它是如何工作的-"belongs_to:user,dependent::destroy`》经验,为你挑选了1个好方法。

我知道如何工作has_many :posts, dependent: :destroy.如果帖子Userhas_many帖子被销毁,所有所属帖子也会被销毁.

Post模型会发生什么belongs_to :user, dependent: :destroy?我在Rails指南中找到了这个选项,但我找不到如何使用它.

http://guides.rubyonrails.org/association_basics.html



1> JohnSalzarul..:
"has_many" 

老师"有很多"学生.每个学生只有一位老师,但每位老师都有很多学生.这意味着学生上有一个外键或teacher_id,引用他们所属的教师.

"belongs_to" 

学生"归属于"老师.每位老师都有很多学生,但每个学生只有一位老师.同样,学生的外键是指他们所属的老师.

让我们用这个学生/老师的概念来解决这个问题.

老师模型

class Teacher < ActiveRecord::Base
  has_many :students, dependent: :destroy
end

学生模特

class Student < ActiveRecord::Base
    belongs_to :teacher 
end 

假设这些模型

Teacher.destroy 

将删除实例化的教师和与该教师关联的所有学生.

例如

Teacher.find(345).destroy 

会破坏身份证号为345的老师的记录,并摧毁与该老师相关的所有相关学生.

现在问题的核心是,当我的模型看起来像这样时会发生什么?

老师模型

class Teacher < ActiveRecord::Base
  has_many :students, dependent: :destroy
end

学生模特

class Student < ActiveRecord::Base
    belongs_to :teacher, dependent: :destroy
end 

如果我打电话

Student.destroy

这会破坏实例化的学生和该学生的相关教师.然而据我所知(并根据文件),这不会摧毁任何其他与该老师相关的学生,使他们成为"孤儿".

以下是关于此 1 的Ruby文档的引用

如果设置为:destroy,则在此对象时销毁关联的对象.当belongs_to与另一个类的has_many关系一起使用时,不应指定此选项,因为可能会留下孤立的记录.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有