我可以使用has_many通过:不删除删除时的所有相关记录吗?

时间:2015-07-09 17:59:13

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

我正在尝试列出要添加到applicant_commissions的commissions

ApplicantCommission.rb
  belongs_to :applicant
  belongs_to :commission

Applicant.rb

  has_many :applicant_commissions

Commission.rb

  has_many :applicant_commissions

问题是,如果我使用has_many:当我删除申请人时,委员会也会被删除。 (反之亦然)

有关如何在不丢失相关记录的情况下创建和销毁此内容的任何建议吗?

1 个答案:

答案 0 :(得分:0)

您的文件中应该有以下关系

ApplicantCommission.rb

belongs_to :applicant
belongs_to :commission

Applicant.rb

has_many :applicant_commissions,  dependent: :destroy
has_many :commissions, through: :applicant_commissions

Commission.rb

has_many :applicant_commissions,  dependent: :destroy
has_many :applications, through: :applicant_commissions

这样您的分配就不会被删除。 其次,我建议你看一下这个' mark_for_destruction'删除。 这有助于您轻松删除内容。

http://api.rubyonrails.org/classes/ActiveRecord/AutosaveAssociation.html