using transaction the right way

I wonder if my transaction is well written ? I create the user record first , then the issue record (no validation) if the user record is valid and saved if anything happen when saving the issue, I want to rollback the user record...

  def infos_send     @franchise = Franchise.scoped_by_mother_of_all(true).first     @user = ProspectUser.new(params[:user])

    User.transaction do       if @user.save         create_info_request_issue #private method         @issue.save         raise ActiveRecord::Rollback         flash[:notice] = I18n.t(:notice_successful)         redirect_back_or_default :action => 'index'       else         render :action => 'infos'       end     end

  end

thanks for you help

erwin

I wonder if my transaction is well written ? I create the user record first , then the issue record (no validation) if the user record is valid and saved if anything happen when saving the issue, I want to rollback the user record...

It looks a bit odd - you always raise ActiveRecord::Rollback, no
matter what happened. In case you did't know, if an exception is raised inside the
tranasaction block then a rollback will happen for you automatically.

Fred

Frederick Cheung wrote: