[Catalyst] How to detect if the current form request is a post?

J. Shirley jshirley at gmail.com
Wed Apr 1 00:47:34 BST 2009


On Tue, Mar 31, 2009 at 4:01 PM, <kakimoto at tpg.com.au> wrote:

>
> hi all
>
>  In Ruby we can detect if the current form's request is a post or not.
>
> def controller_action
>    if request.post?
>              # Process post data as the user has submitted the form.
>    else
>        # Display form
>    end
> end
>
>
> Looking at Catalyst::Request
> (
> http://search.cpan.org/~mramberg/Catalyst-Runtime-5.71001/lib/Catalyst/Re=
quest.pm#$req-%3Eprotocol<http://search.cpan.org/%7Emramberg/Catalyst-Runti=
me-5.71001/lib/Catalyst/Request.pm#$req-%3Eprotocol>
> ),
> I found $req->method. The description says, "Contains the request method
> (GET, POST, HEAD, etc)."
>
> So, in Catalyst, would it be sufficient for me to do something like:
>
> sub controller_action : Path('registration')
> {
>    if (($c->request->method eq 'POST') or ($c->request->method eq 'GET'))
>    {
>         # Process post data as the user has submitted the form.
>    }
>    else
>    {
>        # Display form
>    }
>
>   return 1;
> }
>
>
> Comments? Thanks
>
>
>
Yes, as the docs say, that's what it is for :)

$c->req->method eq 'POST' will  do what you want.  You should not do any
processing on a GET request, though.  It is just bad practice.

-J
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20090331/d17bb=
3ed/attachment.htm


More information about the Catalyst mailing list