在Ruby on Rails 4中,假設父母有很多孩子。當父母被刪除時,孩子也必須被刪除。除此之外,兒童不得被刪除,除非是孤兒。怎麼做?導軌防止刪除孩子,除非父母也被刪除
我試着用以下
class Parent < ActiveRecord::Base
has_many :children, inverse_of: :parent, dependent: :destroy
end
class Child < ActiveRecord::Base
belongs_to :parent, inverse_of: :children
before_destroy :checks
private
def checks
not parent # true if orphan
end
end
隨着before_destroy檢查,但是,沒有被刪除。有沒有什麼方法可以告訴這個方法被調用的原因是否是因爲父刪除?
這是一個奇怪的事情要求嗎?我的意思是,防止刪除孩子。
除非您的應用程序包含直接刪除兒童的代碼,否則應該不可能直接刪除它們,但仍可以刪除它們作爲刪除父項的一部分。我不明白你是如何處理這個問題的。你能否更具體一些? – monfresh
你說得對。謝謝。 – user2553863