Destrua no atributo aninhado em branco

Eu gostaria de destruir um modelo aninhado se seus atributos estão em branco no formulário para o modelo pai - no entanto, parece que oActiveRecord::Callbacks não são chamados se o modelo estiver em branco.

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

e

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

Eu tenho um formulário para o artista que usafields_for para mostrar os campos para as datas da turnê associada do artista, que funciona para editar e adicionar novas datas da turnê, mas se eu simplesmente anular a data da turnê (para excluí-la),destroy_if_blank nunca é chamado. Presumivelmente, o controlador do Artista@artist.update_attributes(params[:artist]) linha não considera uma entidade em branco que vale a pena atualizar.

Estou esquecendo de algo? Existe uma maneira de contornar isso?

questionAnswers(5)

yourAnswerToTheQuestion