hi I was pretty successful in keeping things simple. I figured I d' keep all steps that needed a form to be generated (ie for data entry) to "sub create".
Then, at the very end when I am done getting all the data (from forms shown on the webpage), I would then redirect/forward/detach to another method, "sub save_complete_listing". sub create :Local :FormMethod('_get_dynamic_form') { my ($self, $c) = @_; # Set the template my $effective_template = 'listings/create.tt2'; $c->stash->{template} = $effective_template; my $loanType = lc($c->request->param('loanType')); my $step = $c->flash->{step}; $c->log->debug("Current operation: $step"); if (defined($step) and $step =~ m/\w+/) { my $form_submission_success = $c->stash->{'form'}->submitted(); if ($form_submission_success) { if ($step eq 'first_step') { .... # now, set the next step. $c->flash->{'step'} = 'second_step'; } elsif ($step eq 'second_step') { .... # now, set the next step. $c->flash->{'step'} = 'third_step'; } elsif ($step eq 'third_step') { .... # now, we have acquired all data we need from steps one and two. # we do a redirect/forward/detach to save the values. Should go to 'sub save_complete_listing' $c->detach/ $c->res->forward/$c->redirect # all failed. } A few questions: 1) What is the difference between Detach, forward and redirect?? I read through the docos and they are under explained. Refered to http://search.cpan.org/~mramberg/Catalyst-Runtime-5.7014/lib/Catalyst.pm#___top Correct me if i am wrong: a) $c->forward - control will be passed to whatever target it is defined with. Once the target is finished with execution, control will go back to where it was "forwarded" from b) $c->detach - same as forward BUT control does not go back to where it was "detached" from. c) $c->res->redirect - someone please give me an idea cause my initial thoughts was that it should resemble forward 2. When we do a $c->forward/$c->detach/$c->res->redirect, would a) $c still be defined?? b) $c->stash contents still be defined?? c) $c->flash contents still be defined?? For stash and flash, I noticed they got wiped off. Particularly, $c->stash/flash->{'form'}. To be extra safe, before the $c->forward/$c->detach/$c->res->redirect, I even explicitly did a "$c->flash->{'form'} = $c->stash->{'form'}" and yet the values have dissappeared. Please help. Thanks _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/