使用dependent :: destroy不能在rails上运行

时间:2016-06-21 16:07:27

标签: ruby-on-rails destroy belongs-to dependent-destroy

我有一个带有这些关联的表Bmp

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

和另一个表Subareas

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 个答案:

答案 0 :(得分:0)

您的子区域仍属于场景!!如果删除它们,它们之间的关联就会中断。

  • 删除&#34; belongs_to:scenario&#34;在subarea.rb。

  • 添加&#34; has_many:subareas,trough :: bmp&#34;在scenario.rb中。

这将保持子区域和场景之间的关系,但是会把bmp&#34;放在路上&#34;他们之间将允许&#34;链破坏&#34;。