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