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
-~----------~----~----~----~------~----~------~--~---

Reply via email to