Hey,

Apparently today I'm the worst developer ever.

Same form I've been working on for 2 days now. I've slimmed it down
now from 4 models to 2 to try and narrow the problem field.

The controller only defines two areas. [new, create]

In my form I have a <%= forms_for :user, @user %> section.

In my controller I have:
begin
      ActiveRecord::Base.transaction do
        @dealer = Dealer.new(params[:dealer])
        @dealer.save

        @user =  @dealer.users.new(params[:user])
        @user.roles << Role.find(3)
        @user.save!
      end
    rescue ActiveRecord::RecordInvalid => invalid
      render :controller => 'dealers', :action => 'new'
    end

    if ! @dealer.new_record? && ! @user.new_record?
      flash[:notice] = "Dealer, User and addresses saved!"
      redirect_to root
    end

What is now happening is if the dealer parameters are wrong. It throws
up validation errors like expected. If the dealer params are correct
but the user params are wrong then as exepcted nothing gets saved to
the db thanks to the transaction. BUT the page gets rendered as an
edit_dealer_id page. with a new hidden field telling the form to
submit via put method. And of course that dealer id doesn't exist as
it never saved to the db.

How is this even happening. I don't have edit/update controller
functions or views. This is just being generated on the fly and is a
really big pain. Why wouldn't it just render the correct page like
when the dealer params are incorrect. Something has gone horribly
wrong somewhere and nothing is working like i'd expect.

Any suggestions would help,
cheers,
brianp

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to