On Tue, Mar 3, 2009 at 7:33 PM, Peter Karman <[email protected]> wrote: > Iain wrote on 03/03/2009 09:33 AM: >> Hello all, >> >> So we are having a discussion @work about basic add/edit functions. We >> currently have currently two lines of thoughts on handling it. >> >> 1. Have separate actions for adding and editing e.g. >> >> # add >> /app/notice/add_new (POST To) /app/notice/process_add_new >> >> # edit >> /app/notice/*/edit (POST To) /app/notice/*/process_edit >> >> 2. Have a shared edit action with an if ( $c->req->method eq 'POST' ) >> check. >> >> # edit >> /app/notice/*/edit (POST Back to) /app/notice/*/edit >> >> There currently doesn't look like much difference in lines of code to >> manage. >> >> Just wondering if anybody has any thoughts/experience, pros/cons best >> practice etc of either approach. >> > > CatalystX::CRUD::Controller does: > > /app/notice/create # redirect internally to 0/edit > /app/notice/*/edit # POST to /app/notice/*/save > > The '0' placeholder indicates it is a new object. '0' has the nice > effect of evaluating true for defined() and length() but false > otherwise. OTOH, it means you can't have a valid OID that == 0. > > If you use CatalystX::CRUD::REST, you can do: > > # POST /foo -> create new record > # GET /foo -> list all records > # PUT /foo/<pk> -> update record > # DELETE /foo/<pk> -> delete record > # GET /foo/<pk> -> view record > # GET /foo/<pk>/edit_form -> edit record form > # GET /foo/create_form -> create record form > > CatalystX::CRUD::REST uses the C::R::REST::ForBrowsers feature of > 'x-tunneled-method' param to support PUT and DELETE via POST.
And where do the forms submit? I mean what is their action address? Do they submit to themselves - or does edit_form submit to /foo/<pk>?x-tunneled-method=PUT and create to /foo both with POST method? And it is the second - then what do you do when the form parameters are incorrect and you need to redisplay the form? -- Zbigniew Lukasiak http://brudnopis.blogspot.com/ http://perlalchemy.blogspot.com/ _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[email protected]/ Dev site: http://dev.catalyst.perl.org/
