sub edit_book : Local : Args(1) { my ( $self, $c, $id ) = @_; my $book = $c->model('DB::Book')->find($id); return $self->form($c, $book); } sub form : Private { my ( $self, $c, $book ) = @_; my $form = MyApp::Form::Book->new; $c->stash( template => 'admin/edit_book.tt', title => 'Edit Book', form => $form, ); $form->process->( item => $book, params => $c->req->params ); return unless $form->validated; }