On Feb 12, 6:35 pm, Rob Biedenharn <r...@agileconsultingllc.com>
wrote:
> On Feb 12, 2009, at 4:21 PM, Jamie Forrest wrote:
>
>
>
> > I want to create a record with a manually-set custom ID, for instance:
>
> > Foo.create(:id => 8000, :name =>"bar")
>
> > But when I try to do that, Rails ignores the id I pass and continues
> > to auto-increment the id in the table. So in other words the console
> > output is along the lines of:
>
> >>> Foo.find(:last)
> > => #<Foo id: 52, name: "foo">
> >>> Foo.create(:id => 8000, :name =>"bar")
> > => #<Foo id: 53, name: "bar">
>
> > What's the best way around this? (By the way, after I insert this
> > record with the custom ID, I *do* want it to revert back to auto-
> > incrementing the id.)
>
> Foo.create(:name => 'bar') do |foo|
>    foo.id = 8000
> end
>
> One caveat however that bit me last week doing something similar when  
> initializing some records in a new table.  PostgreSQL has a sequence  
> created to support the auto-incrementing primary key (id) and I was  
> getting unique index errors when new (or editted!) records were being  
> saved and the sequence value was already a different record in the  
> table.
>
> (My solution was to manually next values off each of the two sequences  
> until it would return a value that wasn't already a key.)
>
> -Rob
>
> Rob Biedenharn          http://agileconsultingllc.com
> r...@agileconsultingllc.com

Thanks that worked like a charm.
--~--~---------~--~----~------------~-------~--~----~
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