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?