I'm throwing sql errors on a User.find_or_create_by_foo_and_email call. I created an index with the following: add_index "users", ["foo_id", "email"], :name => "by_foo_email", :unique => true Then in a class foo instance method: user = User.find_or_create_by_foo_id_and_email (self.id,some_email_address) and I get this error: ActiveRecord::StatementInvalid (Mysql::Error: Duplicate entry 'email@example.com' for key 2: : INSERT INTO `users` (`name`, `unsubscribed`, `updated_at`, `unsubscribed_date`, `user_id`, `bounce_date`, `foo_id`, `email`, `created_at`, `bounced`) VALUES (NULL, 0, '2009-03-31 16:04:51', NULL, NULL, NULL, 11, 'firstname.lastname@example.org', '2009-03-31 16:04:51', 0) Isn't find_or_create_by() supposed to only create if it can't find? caveat - I'm running this with workling/starling.
on 2009-04-01 17:19
on 2009-04-01 23:32
On Wed, Apr 1, 2009 at 10:18 AM, klochner <email@example.com> wrote: > user = User.find_or_create_by_foo_id_and_email > Isn't find_or_create_by() supposed to only create if it can't find? I think that's just for the primary key. -- Greg Donald http://destiney.com/