【问题标题】:has_many through: without deleting associated objecthas_many through:不删除关联对象
【发布时间】:2015-07-31 10:08:20
【问题描述】:

我想在不删除医师的情况下删除患者及其所有约会。

采取以下关联:

class Patient < ActiveRecord::Base
  has_many :appointments
  has_many :physicians, through: :appointments
end

class Appointment < ActiveRecord::Base
  belongs_to :physician
  belongs_to :patient
end

class Physician < ActiveRecord::Base
  has_many :appointments
  has_many :patients, through: :appointments

每次我移除患者时,我都会失去该患者甚至接触过的所有医生(通过预约)。医生可能只见过一名患者..但这不是在患者被移除时移除医生的理由。

我觉得我需要类似的东西

class Physician < ActiveRecord::Base
      has_many :appointments, dependant: hell no!

有人可以帮助我吗?是否有可能 has_many through 关系是错误的解决方案?

谢谢

编辑:我绝不希望由于相关的患者或医师离开手术而从系统中移除患者或医师。

如果医生离开,这并不意味着患者也会离开。虽然我很高兴他们的约会被取消。同样,如果患者离开,这并不意味着我的医生也会离开。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 associations has-many-through


【解决方案1】:

您是要删除或销毁患者吗?通常删除应该跳过破坏相关记录。不过,请检查 API 中的这些注释:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Delete+or+destroy%3F

【讨论】:

  • 目前,我让协会去做。我在医师和患者上都尝试过 has_many :appointments, :dependent => :delete_all ,但这似乎不起作用。
猜你喜欢
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多