У меня есть следующие ассоциации моделей:
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.