# Multiple inserts in ActiveRecord

**URL:** <https://www.ruby-forum.com/t/multiple-inserts-in-activerecord/192495>\
**Category:** Rails\
**Created:** [July 31, 2010, 3:18pm UTC](https://www.ruby-forum.com/t/multiple-inserts-in-activerecord/192495 "2010-07-31T15:18:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![judofyr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@judofyr](https://www.ruby-forum.com/u/judofyr)\
**Post date:** [July 31, 2010, 3:18pm UTC](https://www.ruby-forum.com/t/multiple-inserts-in-activerecord/192495/1 "2010-07-31T15:18:11Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![judofyr](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/90ced4/32.png) [@judofyr](https://www.ruby-forum.com/u/judofyr)\
**Post date:** [August 1, 2010, 12:30am UTC](https://www.ruby-forum.com/t/multiple-inserts-in-activerecord/192495/2 "2010-08-01T00:30:08Z")

</div>

> **[\#198 Edit Multiple Individually - RailsCasts](http://railscasts.com/episodes/198-edit-multiple-individually)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

2010/7/31 Magnus H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> ## @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 removed\_email\_address@domain.invalid.  
> To unsubscribe from this group, send email to  
> removed\_email\_address@domain.invalid[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> .  
> For more options, visit this group at  
> [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

–  
Rodrigo MendonÃ§a  
(62) 8567-3142
