http://guides.rubyonrails.org/association_basics.html
基于上面的例子,我创建了:
class Physician < ActiveRecord::Base
has_many :appointments
has_many :patients, through: :appointments
end
class Appointment < ActiveRecord::Base
belongs_to :physician
belongs_to :patient
end
class Patient < ActiveRecord::Base
has_many :appointments
has_many :physicians, through: :appointments
end
有人可以指导我如何执行级联删除操作。
如果我删除患者,我希望删除患者的所有预约。我是否需要在某处使用依赖关键字?有人可以证明如何解决这个问题。
如何删除特定患者的所有约会?
提前致谢!
答案 0 :(得分:1)
class Patient < ActiveRecord::Base
has_many :appointments, dependent: :destroy
has_many :physicians, through: :appointments
end
Patient.find(id).destroy
这对你有用。请务必使用destroy
而不是delete
,因为如果您使用删除,则无法获得预期的级联效果。
更新2:
如果您想要销毁所有约会而不是病人,您可以这样做:
Patient.find(id).appointments.destroy_all