2

これらの関連付けを持つテーブル 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

どこを台無しにしたのかわかりません。どんなアイデアでも大歓迎です!

4

1 に答える 1

0

あなたのサブエリアはまだシナリオに属しています!! それらを削除すると、それらの間の関連付けが解除されます。

  • subarea.rb の「belongs_to :scenarios」を削除します。

  • scenario.rb に「has_many :subareas ,trough: :bmp」を追加します。

これにより、サブエリアとシナリオ間の関係が維持されますが、それらの間に bmp が「途中」に置かれ、「連鎖破壊」が可能になります。

于 2016-06-21T16:31:38.553 に答える