Spontan würde in Rails einen before_filter benutzen, der beim speichern den Wert setzt,
kurz nachgedacht würde ich das wohl anders machen:

Du brauchst das aber auch gar nicht selbst mitzuzählen, wenn du in der Tabelle customer einen counter_cache anlegst.

http://blog.gorgorg.org/articles/2006/04/04/ruby-on-rails-how-to- actually-use_count-counter_cache

Ich hoffe, das hilft dir.

Viele Grüße,
Tom


On Jul 17, 2007, at 1:05 PM, Daniel Weinand wrote:

Hallo,
gibt es einen "Railsweg" um Werte in der DB in Abhängigkeit eines anderen Wertes zu erhöhen? Also quasi wie die interne id Vergabe, aber mit einem festzulegendem Kriterium.

Beispiel:
Ich habe eine Tabelle 'customer' und eine Tabelle 'transactions', verknüpft über has_many -> belongs_to. Bei jeder Neuanlage soll ein interener Zähler pro Transaktion/Kunde hochgezählt werden.

Also quasi:
# Pseudo
autoincrement_spalte = Transaction.maximum (:autoincrement_spalte, :conditions => {"kunde_id = ?", self.kunde_id}, :unique)

Der Wert muss aufjedenfall unique sein. Also darf nicht doppelt vergeben werden. Momentan wird das über einen Trigger in der DB selbst erledigt. Denke ich mal der beste Weg. Interessiert mich aber gerade obs da eine Rails interne Lösung gibt.

Gruß

Daniel

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

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

Antwort per Email an