I am also having a similar problem. I'm using Oracle as my database, and when I try to create a record in my join table, I get an ActiveRecord::StatementInvalid exception. It appears that the generated sql is trying to insert a value into an 'id' column. It originally complained about not finding a sequence, so I created one just to see what would happen. Unfortunately, my table, being a join table, doesn't have an id column. It was created using migrations with the create_table statement option :id => false. That's why I'm getting an OCIError: ORA-00904: "ID": invalid identifier error.
Does anyone know how to get AR to stop trying to insert an id into my join table? Is there something more than :id => false in the migrations?