has many relation - destroy troubles

Hello, Rookie here ... learning rails and enjoying it ... having a
bit-o-trouble with has many in the following scenario:

class Party < ActiveRecord::Base
  has_many :target_associations, :foreign_key => 'source_party_id',
                       :class_name => 'PartyAssociation',
                       :dependent => :destroy

  has_many :source_associations, :foreign_key => 'target_party_id',
                       :class_name => 'PartyAssociation',
                       :dependent => :destroy
end

class PartyAssociation < ActiveRecord::Base
  belongs_to :party, :foreign_key => "source_party_id"
  belongs_to :party, :foreign_key => "target_party_id"
end

class CreateParties < ActiveRecord::Migration
  def change
    create_table :parties do |t|
      t.timestamps
    end
  end
end

class CreatePartyAssociations < ActiveRecord::Migration
  def change
    create_table :party_associations, :id => false do |t|
      t.integer :source_party_id
      t.integer :target_party_id

      t.timestamps
    end
  end
end

This RSpec statement:
it "should destroy source associations" do
          @party.destroy
    end

Causes this ERROR MESSAGE:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column:
party_associations.: DELETE FROM "party_associations" WHERE
"party_associations"."" = ?

What am I doing wrong that prevents active record from knowing how to
form the delete statement?

Hello, Rookie here ... learning rails and enjoying it ... having a
bit-o-trouble with has many in the following scenario:

class Party < ActiveRecord::Base
has_many :target_associations, :foreign_key => 'source_party_id',
:class_name => 'PartyAssociation',
:dependent => :destroy

has_many :source_associations, :foreign_key => 'target_party_id',
:class_name => 'PartyAssociation',
:dependent => :destroy
end

class PartyAssociation < ActiveRecord::Base
belongs_to :party, :foreign_key => "source_party_id"
belongs_to :party, :foreign_key => "target_party_id"
end

class CreateParties < ActiveRecord::Migration
def change
create_table :parties do |t|
t.timestamps
end
end
end

class CreatePartyAssociations < ActiveRecord::Migration
def change
create_table :party_associations, :id => false do |t|

You should not have :id false, the table needs an id column. It is
generally only when you use has_and_belongs_to_many that you do not
require an id column

Colin

Uh ... ended up changing things to use the Has Many Through association
... now it all works and looks like this:

#Created a parties table
class CreateParties < ActiveRecord::Migration
  def change
    create_table :parties do |t|
      t.string :type

      t.timestamps
    end
  end
end

#created a join table to associate one party to another
class CreateAssociatedParties < ActiveRecord::Migration

  def change
    create_table :associated_parties do |t|
      t.integer :association_type_id
      t.integer :parent_id
      t.integer :child_id
    end
  end

end

#With a Party class like this using hmt
class Party < ActiveRecord::Base

  has_many :primary_associations, :foreign_key => 'parent_id',
                                  :class_name => 'AssociatedParty',
                                  :dependent => :destroy
  has_many :children, :through => :primary_associations

  has_many :secondary_associations, :foreign_key => 'child_id',
                                    :class_name => 'AssociatedParty',
                                    :dependent => :destroy
  has_many :parents, :through => :secondary_associations

end

#And the join class like this
class AssociatedParty < ActiveRecord::Base

  belongs_to :parent, :class_name => "Party"
  belongs_to :child, :class_name => "Party"

end