Hallo Gruppe, 

ich werde aus der 2006'er Ausgabe der Bibel nicht ganz schlau wenn es um
transactions geht. Ich habe Models, die in keiner Beziehung stehen,
unter bestimmten Umständen aber doch in einer Transaktion gespeichert
werden müssen. 

  def create
    @bid = Bid.new(session[:temp_bid])    
    if @bid.valid?
      if @bid.save        
        if @bid.create_bid_transaction
          @shipping.bidcount += 1
          if @shipping.save          
            @message = Message.new()
            @message.bla = blu
            if not @message.save
              redirect_to :controller => "error", :action =>
"error_message"
            end 
            if @settings = Setting.find(:first, :conditions => ["user_id
= ?", session[:user_id]])
              @settings.foo = bar
            if not @settings.save
              redirect_to :controller => "error", :action =>
"error_settingsa"
            end
          end
        end
      else
        redirect_to :controller => "error", :action => "error_bid"
      end
    else
      redirect_to :controller => "error", :action =>
"error_validate_bid"
    end
  end

Das spannende hierbei ist, dass hier schon 4 Tables bids, shippings, messages 
und settings beteiligt sind, aber in der Funktion create_bid_transaction 
nochmal 2 weitere Tables betroffen sind. 

David spricht jetzt zwar von "Multidatabase Transaction" und schreibt:

User.transaction(user) do
  Account.transaction(account) do
    account.calculate_fees
    user.date_fees_last_calculated = Time.now
    user.save
    account.save
  end
end

Aber meint hier doch eher "Multitable Transactions", oder? 

Ich weiss, dass der Code oben übel ist, aber abgesehen davon die Frage: Muss 
ich meine Transaktionen nun für jedes der verwendeten Models schachteln, um 
hier Transaktionssicherheit zu haben? 

Grüße
Jan Rösner
jan [at] roesner.it

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an