Rails 3. before_destroy validation to prevent deleting parent records

У меня есть грузы и счета-фактуры.

счет-фактура принадлежит грузу
у груза есть один счет

Если у груза есть счет-фактура, то груз не должен быть удален. Мне нужно настроить это в моделях, потому что я использую ActiveAdmin.

Поэтому я сделал это в shipment.rb

has_one :invoice
before_destroy :check_for_invoice

private

def check_for_invoice
  unless invoice.nil?
    self.errors[:base] << "Cannot delete shipment while its invoice exists."
  end
end

Но я просто получаю желтое сообщение "Груз не может быть удален", хотя на самом деле он был удален.

Как я могу предотвратить удаление груза?

8
задан leonel 11 January 2012 в 19:50
поделиться