Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无法在ruby on rails中删除HATBM关系_Ruby On Rails - Fatal编程技术网

Ruby on rails 无法在ruby on rails中删除HATBM关系

Ruby on rails 无法在ruby on rails中删除HATBM关系,ruby-on-rails,Ruby On Rails,不确定如何删除“飞行”和“发票”之间的关联。到目前为止,我所尝试的是从数据库中删除苍蝇 <table class="table table-condensed"> <thead> <tr> <th>Invoice Flies</th> </thead> <tbody> <% @invoice.flies.each do |fly| %>

不确定如何删除“飞行”和“发票”之间的关联。到目前为止,我所尝试的是从数据库中删除苍蝇

<table class="table table-condensed">
  <thead>
    <tr>
      <th>Invoice Flies</th>
    </thead>
    <tbody>
      <% @invoice.flies.each do |fly| %>
        <tr>
          <td><%= fly.name %></td>
          <td><%= link_to "delete", ??????, method: :delete,
                                  data: { confirm: "You sure?" } %></td>
        </tr>
      <% end %>
    </tbody>
  </table>
发票型号:

class Invoice < ActiveRecord::Base
  attr_accessible :active
  validates :user_id, presence: true
  belongs_to :user

  has_many :categorizations
  has_many :flies, through: :categorizations
end
发票迁移:

class CreateInvoices < ActiveRecord::Migration
  def change
    create_table :invoices do |t|
      t.boolean :active
      t.integer :user_id

      t.timestamps
    end
    add_index :invoices, :user_id
  end

end
class CreateCategorizations < ActiveRecord::Migration
  def change
    create_table :categorizations do |t|
      t.integer :user_id
      t.integer :fly_id

      t.timestamps

      add_index :categorizations, :user_id
      add_index :categorizations, :fly_id
    end
  end
end
class CreateFlies < ActiveRecord::Migration
  def change
    create_table :flies do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end
分类模型:

class Categorization < ActiveRecord::Base
  attr_accessible :fly_id, :user_id

  belongs_to :invoice
  belongs_to :fly
end
分类迁移:

class CreateInvoices < ActiveRecord::Migration
  def change
    create_table :invoices do |t|
      t.boolean :active
      t.integer :user_id

      t.timestamps
    end
    add_index :invoices, :user_id
  end

end
class CreateCategorizations < ActiveRecord::Migration
  def change
    create_table :categorizations do |t|
      t.integer :user_id
      t.integer :fly_id

      t.timestamps

      add_index :categorizations, :user_id
      add_index :categorizations, :fly_id
    end
  end
end
class CreateFlies < ActiveRecord::Migration
  def change
    create_table :flies do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end
飞行模型:

class Fly < ActiveRecord::Base
  attr_accessible :description, :name
  validates :description, :name, presence: true

  has_many :categorizations
  has_many :invoices, through: :categorizations
end
快速迁移:

class CreateInvoices < ActiveRecord::Migration
  def change
    create_table :invoices do |t|
      t.boolean :active
      t.integer :user_id

      t.timestamps
    end
    add_index :invoices, :user_id
  end

end
class CreateCategorizations < ActiveRecord::Migration
  def change
    create_table :categorizations do |t|
      t.integer :user_id
      t.integer :fly_id

      t.timestamps

      add_index :categorizations, :user_id
      add_index :categorizations, :fly_id
    end
  end
end
class CreateFlies < ActiveRecord::Migration
  def change
    create_table :flies do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end
您可以像这样使用dependent::destroy:

class Fly
  has_many :categorizations, dependent: :destroy
  ...
end
这将破坏与该苍蝇相关的分类


另外,请记住使用Fly.destroy:id不要使用Fly.delete:id,否则它不会删除依赖于该Fly的分类

我们需要代码模型Fly和invoice我现在已将模型添加到问题中。jrturner1234发生了什么事?依赖:销毁并没有解决您遇到的问题吗?