On Oct 14, 11:26 pm, Christian Johansen <[EMAIL PROTECTED]
s.net> wrote:
> I'm using a habtm association for the first time and I'm having some
> trouble when inserting several rows. The id of the join table seems to
> be set to an already existing id causing the insert to fail.
>
habtm join tables should not have an id column (use :id => false as an
option to create_table)
Fred
> class ClassA < ActiveRecord::Base
> has_and_belongs_to_many :bs,
> :class_name => "ClassB",
> :join_table => :abs
>
> end
>
> class ClassB < ActiveRecord::Base
> belongs_to :class_a
> end
>
> My join table migration:
>
> def self.up
> create_table :abs do |t|
> t.integer :class_a_id, :null => false
> t.integer :class_b_id, :null => false
> end
>
> add_index :abs, [:class_a_id, :class_b_id], :unique => true
> end
>
> Then finally in the controller:
>
> @a.bs = ClassB.find params[:bs]
> @a.save
>
> Now, this works the first time, but the second time I get this back:
>
> Mysql::Error: #23000Duplicate entry '1' for key 1: INSERT INTO `abs`
> (`class_a_id`, `id`, `class_b_id`) VALUES (7, 1, 1)
>
> Now, I wonder - why is the id included in the query with a value that is
> already used? I'm sure it's just something I'm doing wrong, but I'm
> having a hard time figuring out what. I looked at the :insert_sql option
> to habtm too, but don't know how to include the ids dynamically?
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---