Hallo Michael, danke für die lange Antwort. Denke dann werd ich es genau so machen, wie du gesagt hast und mir dafür nen eigenen Helper bauen.
Gruß Manuel Michael Schuerig wrote: > On Sunday 11 November 2007, Manuel Wiedenmann wrote: > > >> ich suche gerade nach einer Sinnvollen Lösung, wie man die >> error_messages_for :model sortiert. habt ihr da irgend einen tipp für >> mich? hab hier rapid web development mit ruby on rails liegen aber >> den ansatz finde ich gar nicht ruby like und irgendwie auch sonst >> viel zu aufwändig. >> > > Welchen Ansatz? In den Beispielen dort heisst es eigentlich immer > > <%= error_messages_for :user %> > <%= error_messages_for :product %> > ... > > Was willst du statt dessen haben? > > >> da muss es doch irgendwas geben, damit ich die reihenfolge angeben >> kann. ich stell mir das so vor. ich geb nen hash oder array in meinem >> model oben an, danach soll das dann sortiert werden, geht so was? >> > > "Das" == die ungültigen Attribute? > > Die Reihenfolge, in der die Validierungsfehler ausgegeben werden hängt > davon ab, in welcher Reihenfolge in > ActiveRecord::Base::Errors#full_messages über @errors iteriert wird. > @errors ist einfach ein Hash, da ist die Reihenfolge unbestimmt. > > Wenn du das im bestehenden Rails-Code ändern willst > > def full_messages > full_messages = [] > - @errors.each_key do |attr| > + @errors.keys.sort_by(&:attribute_rank).each do |attr| > ... > > def attribute_rank(attr) > attribute_ordering.index(attr) || attribute_ordering.length > end > > attribute_ordering musst du irgendwie in deiner Model-Klasse setzen und > von dort in Errors hinein bekommen. Zum Speicher empfehle ich ein Class > Inheritable Attribute. > > Anders gesagt, die Sache ist nicht ganz trivial. Wenn du es selbst > machen willst/musst, geht es nicht ohne einen tiefen Blick in den Rails > Code. > > Ich würde empfehlen, das Problem ganz anders zu lösen, nämlich durch > eine eigene Helper-Funktion für die Formatierung der Fehler, der man > als Option ein Array mit der Attributreihenfolge übergeben kann. > > Michael > >
_______________________________________________ rubyonrails-ug mailing list [email protected] http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
