@David Susco I figured that was the way to do it. Thats what I tried the first time but I seem to only be able to validate 1 item at a time. It only validates the company model and it ignores the "&& @user.valid?" If I rearrange my code so that the user gets saved first then only the user validates and then it ignores the "&& @company.valid?". Any ideas?
On Sat, Jul 31, 2010 at 6:31 AM, David Susco <dsu...@gmail.com> wrote: > You could check if both the company and user are valid, and if so create them. > > @company = Company.new (...) > @user = User.new (...) > > if (@company.valid? and @user.valid?) > �...@company.save > �...@user.save > ) > > Dave > > On Sat, Jul 31, 2010 at 7:20 AM, Magnus Holm <judo...@gmail.com> wrote: >> 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 >> Camping-list@rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > > > > -- > Dave > _______________________________________________ > Camping-list mailing list > Camping-list@rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list > _______________________________________________ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list