mysql error on scoped find_or_create_by_attr

Anyone have insight on this one?

class Parent   has_many :children end

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 [:parent_id,:name], so it should just find the record if it's a duplicate.

Also, the following worked:

Child.find_or_create_by_parent_id_and_name(1,"foobar")