X-Git-Url: https://git.decadent.org.uk/gitweb/?p=maypole.git;a=blobdiff_plain;f=ex%2Ffancy_example%2FBeerDB%2FDrinker.pm;h=5119dcf3e1505708f22db43cff076785fac16bdd;hp=f3edd7be8502f00de131c3db52af4ba8b7ffe9ec;hb=436fd74e09a36cccdff90be36e1d098426cbc975;hpb=7bb021648c28d2f70ec2853f0d01dd49c6437460 diff --git a/ex/fancy_example/BeerDB/Drinker.pm b/ex/fancy_example/BeerDB/Drinker.pm index f3edd7b..5119dcf 100644 --- a/ex/fancy_example/BeerDB/Drinker.pm +++ b/ex/fancy_example/BeerDB/Drinker.pm @@ -44,14 +44,15 @@ sub view : Exported { my ($self, $r, $obj) = @_; $self->_croak( "Object method only") unless $obj; - if ($r->params->{submit} eq 'drink') { - $r->params->{drinker} = $self; - my ($pint, $errs) = $self->related_class($r, 'pints')->create_from_cgi($r); - $r->template_args->{errors} = $errs if $errs; + if ($r->params->{submit}) { + my ($pint) = $obj->add_to_from_cgi($r); + if (my $errs = $obj->cgi_update_errors) { + $r->template_args->{errors} = $errs; + } } my %cgi = $self->to_cgi('pints'); - $cgi{pints}{drinker} = $obj->to_field(drinker => 'link_hidden', {r => $r}); + delete $cgi{pints}{drinker}; # = $obj->to_field(drinker => 'link_hidden', {r => $r}); $r->template_args->{classmetadata}{cgi} = \%cgi ; }