sub blog : Chained('/') PathPart('blog') CaptureArgs(0) { } sub load_blog : Chained('blog') PathPart('') CaptureArgs(1) { my ($self, $c, $id) = @_; my $entry = $c->model('DB::Blog')->find($id); if ( $entry ) { $c->stash(entry => $entry ); } else { $c->stash( error_msg => "No such blog" ); $c->detach; } } sub view : Chained('load_blog') PathPart('view') Args(0) { my ($self, $c) = @_; } sub create : Chained('blog') PathPart('new') Args(0) FormConfig('blogs/create.yml') { my ($self, $c) = @_; my $form = $c->stash->{form}; if ( $form->submitted_and_valid ) { my $entry = $c->model('DB::Blogs')->new_result({ created => DateTime->now }); $form->model->update($entry); $c->stash( status_msg => "Post saved", entry => $entry ); } else { $c->stash( error_msg => "Your form had errors" ); $c->detach; } }