Hey campers,
I'm wondering if any of you know a better solution to skylerrichter's
problem: http://github.com/camping/camping/issues#issue/28
The basic idea is that he want to create a Company, and then the first
User in that Company:
@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 he don't want
*any* of them to be saved (I assume). 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 way to solve this?
// Magnus Holm
_______________________________________________
Camping-list mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/camping-list