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")

On Mar 23, 2:10 pm, jemminger <jemmin...@gmail.com> wrote:
> The name 'foobar' exists already?
>
> On Mar 23, 1:36 pm, klochner <kloch...@gmail.com> wrote:
>
> > 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')
--~--~---------~--~----~------------~-------~--~----~
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@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to