chrisf
2009-Mar-07 22:27 UTC
Be careful of BIGINT primary key fields in MySQL. Will cause problems with ActiveRecord create (but not find)
The MySQL/Ruby library doesn''t properly handle inserts into tables with the primary key being a BIGINT If the ID returned to the MySQL/Ruby library is LARGER than the INT range, the value is returned to Ruby truncated and incorrect. This is then passed up to ActiveRecord and into the id field of your model. The actual INSERT worked properly and when do you an ActiveRecord find for the object, it will have the proper id (assuming you find it via another method other than the truncated id returned). http://rubyforge.org/tracker/index.php?func=detail&aid=24387&group_id=4550&atid=17562 Where it gets really messy is if you have associations on the model you are creating, the ID that is returned to AR is incorrect and it inserts it into the associated models that get auto-saved. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---