[Fortaleza] Código falho

André Lima andreluismlima at hotmail.com
Mon Jan 18 05:03:19 PST 2010


Pesquisando na internet,encontrei a errata do livro de onde tirei essa aplicação.
eis o link:
http://dev.catalystframework.org/wiki/thebookerrata
a errata:
In the code examples on pages 44, 45 and 49, "$c->form" should read
"$self->formbuilder" throughout, and the TT code should say "[% FormBuilder.render %]" instead of "[% form.render %]".
eu confundi o método do contexto,form,com um método do $self,formbuilder.corrigindo isso,o problema foi resolvido.alterei também o $c->forward...pelo $c->req->redirect.o nome do método update_or_insert é bem sugestivo,entendi pra que ele funciona,não tava entendendo de onde ele vinha.mas lendo melhor o código entendi que ele vinha do $c->model que associei com o person.Não entendi porque o código "$form->model->update($person)" é mais adequado.

> Subject: Re: [Fortaleza] Código falho
> From: daniel at ruoso.com
> To: andreluismlima at hotmail.com
> CC: fortaleza at pm.org
> Date: Mon, 18 Jan 2010 09:31:08 -0300
> 
> Em Seg, 2010-01-18 às 05:45 +0300, André Lima escreveu:
> > o método form,lógico,é referente ao FormBuilder.Cria-se a váriavel
> > $person e a associa com um Schema do banco de dados(o que fica
> > evindenciado aqui:my $person = $c->model('AddressDB::People').A
> > variável person é utilizada depois para associar as colunas do banco
> > de dados com os campos do form: 
> 
> Se você está usando o FormBuilder, tem um jeito mais adequado de definir
> os valores default do formulário e de atualizar o $person...
> 
> O FormBuilder também implementa um tipo de MVC, então o jeito correto de
> fazer essas coisas é através do model do formulário...
> 
>    # pega os valores do model e atualiza um objeto.
>    $form->model->update($person);
> 
>    # pega os valores do objeto e seta como default no model
>    $form->model->default_values($person)
>     unless $form->submitted;
> 
> > ele guarda esses valores no bd($person->update_or_insert;...esse
> > método update_or_insert vem de onde,de que variável?)
> 
> Recomendo você dar uma olhada no manual do DBIx::Class, voce vai
> entender pra que serve o update_or_insert assim como todos os outros
> métodos...
> 
> > retorna-se uma mensagem de sucesso na página
> > list( $c->forward('list').
> 
> O jeito mais interessante para fazer isso é usando o $c->req->redirect
> ao invés do $c->forward. A diferença é que você fazendo o redirect, faz
> com que o usuário possa fazer reload na página de resultado, evitando o
> re-submit da mesma informação por acidente...
> 
>   # mais informações em 
>   http://en.wikipedia.org/wiki/Post/Redirect/Get
> 
> > do contrário,retorna-se a página edit.de qualquer forma,o problema
> > persiste e essa página edit não é carregada.
> 
> O que acontece quando deveria aparecer a página edit? qual é o problema?
> 
> daniel
> 
 		 	   		  
_________________________________________________________________
Agora é fácil compartilhar fotos no Messenger: solte todas na janelinha. Veja como!
http://www.windowslive.com.br/public/tip.aspx/view/77?product=2&ocid=CRM-WindowsLive:dicaCompartilhamentoFotos:Tagline:WLCRM:On:WL:pt-BR:Messenger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/fortaleza/attachments/20100118/2b130070/attachment.html>


More information about the Fortaleza mailing list