0

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

有人可以指导我如何执行级联删除操作。

  1. 如果我删除一个患者,我希望删除该患者的所有约会。我需要在某处使用依赖关键字吗?有人可以演示如何解决这个问题。

  2. 如何删除特定患者的所有预约?

提前致谢!

4

1 回答 1

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

于 2015-08-09T17:24:05.723 回答