Multiple inserts in ActiveRecord

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?

http://railscasts.com/episodes/198-edit-multiple-individually

2010/7/31 Magnus H. [email protected]

@user = User.create(
begin
:password => @input.password)

You received this message because you are subscribed to the Google G.
“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][email protected]
.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.


Rodrigo Mendonça
(62) 8567-3142

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs