On Tuesday 19 May 2009, Michael .. wrote: > Ich habe einen Blog Eintrag mit den Felder Title, Inhalt, usw. > Zu jedem Blog Eintrag kann man mittles AJAX bis zu 5 Bilder hochladen > die direkt nach dem Hochladen in einer Galerie angezeigt werden. > Wenn der Benutzer dann auf Submit klickt, wird der Blog Eintrag > gespeichert. > > Das Problem ist, dass der Blog Eintrag noch nicht existiert wenn die > Bilder hochgeladen werden. > Leider hab ich noch keine Optimale Lösung für das Problem gefunden. [schnipp; zwei Varianten]
> Gibt es eine bessere Möglichkeit für das Problem, sodass z.b. bei > Variante 1 keine unnötigen Einträge erzeugt werden. Wäre es sinnvoll > das Ganze in einer Transaktion ausführen? Das ist immer sinnvoll, hilft hier aber nur bedingt, weil du transaktionale Ressourcen, nämlich die Datenbank, mit nicht- transaktionalen, dem Dateisystem, mischt. Habe ich dich richtig verstanden, dass es grundsätzlich möglich ist, dass der Benutzer Bilder hochlädt, aber nie einen Blogeintrag dazu? Dann schlage ich vor Uploads (oder UploadBatches) und Blogeinträge logisch zu trennen. Der Ablauf sieht dann so aus: - Der Benutzer öffnet das Blogformular. - Er lädt mehrere Bilder auf den Server. - Die Anwendung assoziiert mit jedem Bild ein Upload-Objekt in der Datenbank. - Der Benutzer schreibt einen Blogeintrag und speichert ihn. - Die Anwendung verknüpft den Blogeintrag mit den schon erzeugten Upload-Objekten. - Periodisch löscht die Anwendung Upload-Objekte, die seit einer bestimmten Zeit herrenlos sind. Das ist natürlich deutlich komplizierter als deine Vorschläge. Allerdings wirst du voraussichtlich um regelmäßige Hintergrundjobs ohnehin nicht herumkommen, da kannst du auch gleich damit anfangen. Michael -- Michael Schuerig mailto:[email protected] http://www.schuerig.de/michael/ _______________________________________________ rubyonrails-ug mailing list [email protected] http://mailman.headflash.com/listinfo/rubyonrails-ug
