http://railscasts.com/episodes/198-edit-multiple-individually
2010/7/31 Magnus Holm <[email protected]> > Hey rails-talk, I have a little question: How do you handle multiple > inserts like these in ActiveRecord? It's for a little Camping app that > skylerrichter is writing, but it's just plain, simple ActiveRecord, so > it shouldn't really be any difference from a Rails app: > > @company = Company.create( > :name => @input.name, > :sub_domain => @input.subdomain) > > # Create the first user: > @user = User.create( > :company_id => @company.id, > :first_name => @input.first_name, > :last_name => @input.last_name, > :email => @input.email, > :password => @input.password) > > Both Company and User has validations, so there's a possibility that > they don't actually get saved to the DB, and in that case I don't want > *any* of them to be saved. I was thinking about something like this: > > begin > Company.transaction do > @company = Company.create!( > :name => @input.name, > :sub_domain => @input.subdomain) > > @user = User.create!( > :company_id => @company.id, > :first_name => @input.first_name, > :last_name => @input.last_name, > :email => @input.email, > :password => @input.password) > end > rescue > @errors = [...@company, @user].compact.map(&:full_messages).flatten > render :errors > else > redirect Login > end > > But I'm wondering if there's a better (more Rails-y) way to solve this? > > -- > 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 [email protected]. > To unsubscribe from this group, send email to > [email protected]<rubyonrails-talk%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > > -- Rodrigo Mendonça (62) 8567-3142 -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

