但是当Post模型belongs_to:user,dependent :: destroy时会发生什么?
我在Rails指南中找到了选项,但我找不到如何使用它.
解决方法
"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文档的引用
If set to :destroy,the associated object is destroyed when this object is. This option should not be specified when belongs_to is used in conjunction with a has_many relationship on another class because of the potential to leave orphaned records behind.
原文地址:https://www.jb51.cc/ruby/269034.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。