Использование зависимых:: уничтожить не работает на рельсах

У меня есть таблица Bmp с этими ассоциациями

class Bmp < ActiveRecord::Base
  #associations
     has_many :subareas, dependent: :destroy
     belongs_to :scenario

и еще одна таблица подрайонов

class Subarea < ActiveRecord::Base
  #associations
      belongs_to :scenarios
      belongs_to :soil
      belongs_to :bmp

однако, когда я пытаюсь удалить bmp, он также должен удалить мой подрайон, но это не так.

  def destroy
    @bmp = Bmp.find(params[:id])
    @bmp.destroy

Я не вижу, где я облажался, любые идеи очень ценятся!

1 ответ

Ваш подрайон все еще будет принадлежать сценариям!! Если вы удалите их, ассоциации будут нарушены между ними.

  • Удалите "assign_to: сценарии" в subarea.rb.

  • Добавьте "has_many: subareas, trough::bmp" в scene.rb.

Это будет поддерживать отношения между подрайонами и сценариями, но поставит bmp "на пути" между ними и позволит "уничтожить цепь".

Другие вопросы по тегам