[Catalyst] How to detect if the current form request is a post?
Kieren Diment
diment at gmail.com
Wed Apr 1 00:59:11 BST 2009
On 01/04/2009, at 10:47 AM, J. Shirley wrote:
> 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/Request.pm#$req-%3Eprotocol
>> <http://search.cpan.org/%7Emramberg/Catalyst-Runtime-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:
>>
>>
...
>>
>>
> 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.
>
Also from Catalyst::Request docs you have
$req->body_parameters ( or body_params ) for POST
$req->query_parameters for ( or query_params) GET
if you want to lump them together, just use $req->parameters or $req-
>params (not $req->param which is a disrecommended CGI.pm compat
method).
More information about the Catalyst
mailing list