@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

Reply via email to