У меня есть следующие ассоциации моделей:
class Slider < ActiveRecord::Base
has_one :featured_happening, :as => :featured_item, :dependent => :destroy
before_destroy :destroy_featured_happening
after_create :create_featured_happening
end
class FeaturedHappening < ActiveRecord::Base
belongs_to :featured_item, :polymorphic => true
end
Когда я уничтожаю объект Slider
, я думал, что dependent => :destroy
автоматически уничтожит featured_item
, но это не так.
Контроллер ползунка
def destroy
slider = Slider.find(params[:id])
slider.delete
render(:status => :ok, :nothing => true )
end
Итак, я попробовал обратный вызов с before_destroy
, чтобы вручную удалить featured_item
, когда объект слайдера уничтожен и ничего не вызвано.
Как я могу удалить featured_item
при удалении объекта слайдера? Использование Rails 3.2.