[SP-pm] Catalyst - fat controllers
Geovanny Junio :: eutsiv
geovanny at eutsiv.com
Wed Jan 4 11:57:52 PST 2012
Olá pessoal, tudo bem?
Estou desenvolvendo uma app utilizando Catalyst + DBIx::Class, nas actions
que inclusão de dados tenho o seguinte:
sub insert :Local :Args(0) {
my ( $self, $c ) = @_;
my $param1 = $c->request->params->{param1} || 0;
# até paramN
my $rs = $c->model('DB::User');
$rs->create({
field1 => $param1
});
# varias tabelas complementares
$rs = $c->model('DB::Userdetails1');
$rs->create({
field1 => $param2
});
# varias tabelas complementares
$rs = $c->model('DB::UserdetailsN');
$rs->create({
field1 => $paramN
});
}
Resumindo: basicamente recebo dados e salvo. Mas em algumas actions que
tenho uma quantidade enorme de parâmetros e tabelas complementares, o
código da action fica grande, e estou sentindo que não é legal, pois vai
contra a ideia de controllers magros.
A minha ideia até o momento é adicionar uma sub ao schema da tabela
principal (User), onde eu passe todos os dados recebidos pela action via
hash, e através dela eu adicionar os dados às tabelas auxiliares
(Userdetails1, UserdetailsN), seria algo mais ou menos assim:
sub insert :Local :Args(0) {
my ( $self, $c ) = @_;
my $rs = $c->model('DB::User')->insert_user($c->request->params);
}
Existe uma abordagem mais inteligente para isso?
Grato,
--
Geovanny Junio
Consultor de Tecnologia
geovanny (at) eutsiv.com
+55 31 9422-8885
+55 31 2519-8603
www.eutsiv.com
Este e-mail pode conter informação privilegiada e confidencial. Se você não
é destinatário da
mensagem, por favor apague a mensagem e comunique-nos o fato de imediato.
This e-mail contains information that may be
privileged and confidential. If you are not the intended recipient, please
delete the e-mail and notify us immediately.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20120104/c5d5b667/attachment.html>
More information about the SaoPaulo-pm
mailing list