防止破坏HABTM关系不是空的

时间:2014-01-07 21:19:37

标签: ruby-on-rails has-and-belongs-to-many

    class Annex
      has_and_belongs_to_many: :documents
    end

    class Document
      has_and_belongs_to_many: :annexes
    end 

我想实现这种行为:如果附件与至少一个文档相关联,则不应销毁它。

有没有一种简单的方法可以做到这一点,还是我必须解决这个问题?

我是否必须使用before_destroy方法或类似的东西?

1 个答案:

答案 0 :(得分:1)

做这样的事情:

class Annex < ActiveRecord::Base
  has_and_belongs_to_many :documents
  before_destroy { raise "Can't destroy Annex, because it's still associated to 1 or more documents" if documents.any? }
end