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 protected]’ 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,
‘[email protected]’, ‘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.