Zniszcz na pustym atrybucie zagnieżdżonym

Chciałbym zniszczyć model zagnieżdżony, jeśli jego atrybuty są wygaszone w formularzu dla modelu macierzystego - wydaje się jednak, żeActiveRecord::Callbacks nie są wywoływane, jeśli model jest pusty.

class Artist < ActiveRecord::Base
  using_access_control
  attr_accessible :bio, :name, :tour_dates_attributes
  has_many :tour_dates, :dependent => :destroy
  accepts_nested_attributes_for :tour_dates, :reject_if => lambda { |a| a[:when].blank? || a[:where].blank? }, :allow_destroy => true
  validates :bio, :name :presence => true

  def to_param
    name
  end
end

i

class TourDate < ActiveRecord::Base
  validates :address, :when, :where, :artist_id, :presence => true
  attr_accessible :address, :artist_id, :when, :where
  belongs_to :artist
  before_save :destroy_if_blank

  private
  def destroy_if_blank
    logger.info "destroy_if_blank called"
  end
end

Mam formularz dla Artysty, który używafields_for aby wyświetlić pola związane z datami tras związanych z trasą artysty, które działają przy edycji i dodawaniu nowych dat tras, ale jeśli po prostu wykasuję datę trasy (aby ją usunąć),destroy_if_blank nigdy nie jest nazywany. Prawdopodobnie kontroler Artysty@artist.update_attributes(params[:artist]) line nie uważa, że ​​pusty element jest wart aktualizacji.

Czy czegoś mi brakuje? Czy istnieje sposób na to?

questionAnswers(5)

yourAnswerToTheQuestion