Mysql error on scoped find_or_create_by_attr


Anyone have insight on this one?

class Parent
has_many :children

add_index “children”, [“parent_id”, “name”], :name =>
“by_parent_name”, :unique => true

a = Parent.find(1)
a.children.find_or_create_by_name “foobar”

Mysql::Error: Duplicate entry ‘foobar’ for key 2: INSERT INTO
children (name, updated_at, parent_id, created_at) VALUES
(“foobar”, ‘2009-03-23 17:25:39’, 1, ‘2009-03-23 17:25:39’)


The name ‘foobar’ exists already?


but the point is that it’s a find_or_create, and the index is on
so it should just find the record if it’s a duplicate.

Also, the following worked: