Catalyst::Controller::Resources - Catalyst Collection Resources Controller
package MyApp::Controller::Articles; use base 'Catalyst::Controller::Resources'; # GET /articles sub list { my ($self, $c) = @_; } # POST /articles sub create { my ($self, $c) = @_; } # GET /articles/{article_id} sub show { my ($self, $c, $article_id) = @_; } # PUT /articles/{article_id} sub update { my ($self, $c, $article_id) = @_; } # DELETE /articles/{article_id} sub destroy { my ($self, $c, $article_id) = @_; } # GET /articles/new sub post { my ($self, $c) = @_; } # GET /articles/{article_id}/edit sub edit { my ($self, $c, $article_id) = @_; }
package MyApp::Controller::Articles; use base 'Catalyst::Controller::Resources'; # ... package MyApp::Controller::Comments; use base 'Catalyst::Controller::Resources'; __PACKAGE__->config(belongs_to => 'Articles'); # GET /articles/{article_id}/comments sub list { my ($self, $c, $article_id) = @_; } # POST /articles/{article_id}/comments sub create { my ($self, $c, $article_id) = @_; } # GET /articles/{article_id}/comments/{comment_id} sub show { my ($self, $c, $article_id, $comment_id) = @_; } # PUT /articles/{article_id}/comments/{comment_id} sub update { my ($self, $c, $article_id, $comment_id) = @_; } # DELETE /articles/{article_id}/comments/{comment_id} sub destroy { my ($self, $c, $article_id, $comment_id) = @_; } # GET /articles/{article_id}/comments/new sub post { my ($self, $c, $article_id) = @_; } # GET /articles/{article_id}/comments/{comment_id}/edit sub edit { my ($self, $c, $article_id, $comment_id) = @_; }
This controller defines HTTP verb-oriented actions for collection resource, inspired by map.resources (Ruby on Rails).
In your controller:
package MyApp::Controller::Books; use base 'Catalyst::Controller::Resources';
This base controller exports Catalyst action attributes to your controller, and setup collection resource as /books.
called by GET /collection request
called by POST /collection request
called by GET /member/{member_id} request
called by PUT /member/{member_id} request
called by DELETE /member/{member_id} request
called by GET /collection/new request
called by GET /member/{member_id}/edit request
NAKAGAWA Masaki <masaki@cpan.org>
Daisuke Murase <typester@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Catalyst::Controller, Catalyst::Controller::SingletonResource, http://api.rubyonrails.org/classes/ActionController/Resources.html
To install Catalyst::Controller::Resources, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Catalyst::Controller::Resources
CPAN shell
perl -MCPAN -e shell install Catalyst::Controller::Resources
For more information on module installation, please visit the detailed CPAN module installation guide.