Is that "populate" method something you cooked up, or is that native to Transfer? I can't find it anywhere in the docs.
-- Josh -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Brian FitzGerald Sent: Wednesday, January 07, 2009 9:03 AM To: transfer-dev Subject: [transfer-dev] Re: back button update transfer object Thanks for the ideas fellas! I ended up just "re-grabbing" the TO in the scenario that it already existed in the db and then populating it w/ the form data: if( exists(quizResult) ) { persistedQuizResult = transfer.get("quiz.QuizResult", quizResultId); persistedQuizResult.populate(qrDataFromForm); transfer.update(persistedResult); } else { transfer.create(quizResult); } This way the QuizResult knew it was persisted so when I went to run an update it didn't have any problem. Thanks again, Brian On Jan 6, 7:16 pm, "Mark Mandel" <[email protected]> wrote: > That is true.. you could preset the ID of the object... therefore if > you go back, you know what it should be the 2nd time around... that > would work. > > Mark > > > > On Wed, Jan 7, 2009 at 11:14 AM, Alan Livie <[email protected]> wrote: > > Not Transfer related but if you use a UUID as a hidden form field and save > > this too if a form is re-submitted you can ignore the insert IF the UUID > > already exists in the database. > > > ________________________________ > > From: Dan Wilson <[email protected]> > > To: [email protected] > > Sent: Tuesday, January 6, 2009 8:54:05 PM > > Subject: [transfer-dev] Re: back button update transfer object > > > How I handle it in 95% of cases is do a redirect to a neutral page once the > > form was successfully submitted. > > > <cflocation> for the win! > > > dw > > > On Tue, Jan 6, 2009 at 3:47 PM, Mark Mandel <[email protected]> wrote: > > >> Brian, > > >> This is more of an application design / user training question. > > >> If a user hits the back button, then they go back to the 'create new' > >> screen... which has no idea what was previously entered. > > >> So if they hit submit again, your app has no way to know what their > >> last insert was. > > >> How you handle this, I think is going to be really up to the needs of > >> your application. > > >> Mark > > >> On Wed, Jan 7, 2009 at 6:15 AM, Brian FitzGerald > >> <[email protected]> wrote: > > >> > Hey guys, any thoughts are appreciated ... > > >> > When a user submits a quiz, my QuizResult transfer object is saved - > >> > transfer.save(QuizResult) > > >> > The problem occurs when the user hits "back" to fix their answers and > >> > resubmit ... at this point transfer runs save again, but instead of an > >> > update, it tries to do another create. This generates a SQL error > >> > since it tries to insert a duplicate record ... the TO doesn't realize > >> > it's already persisted > > >> > in order to force transfer to run create or update in the correct > >> > scenario, I stuck in an "exists" method ... > > >> > if( exists(quizResult) ) > >> > { > >> > transfer.update(quizResult); > >> > } > >> > else > >> > { > >> > transfer.create(quizResult); > >> > } > > >> > but this is still giving me problems because, after hitting the back > >> > button, the transfer object still thinks it isn't persisted even when > >> > it is, so while it does run "update", it also blows up: "The Transfer > >> > Object of type 'quizResult.QuizResult' has not been created in the > >> > database" > > >> > Can anyone point me in the right direction on this? Thanks in advance > > >> -- > >> E: [email protected] > >> W:www.compoundtheory.com > > > -- > > "Come to the edge, he said. They said: We are afraid. Come to the edge, he > > said. They came. He pushed them and they flew." > > > Guillaume Apollinaire quotes > > -- > E: [email protected] > W:www.compoundtheory.com --~--~---------~--~----~------------~-------~--~----~ Before posting questions to the group please read: http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer You received this message because you are subscribed to the Google Groups "transfer-dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en -~----------~----~----~----~------~----~------~--~---
