On 14 January 2012 01:43, Douglas B. <[email protected]> wrote: > 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 > 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? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

