[Rio-pm] ajuda Mojolicious - template e storable
breno
breno em rio.pm.org
Quarta Abril 7 07:53:40 PDT 2010
Grande Donato!
O sistema de templates do Mojolicious converte pra variável tudo que
está no stash, mas trabalha em modo strict e não faz mágica, então se
stash->{invoices} não existe, ele não materializa e morre com erro.
Portanto você pode fazer ou assim:
my $invoices;
if ( my $user = $self->session->{user} ) {
$invoices = $user->invoices;
}
$self->stash( invoices => $invoices );
ou assim:
my $user = $self->session->{user};
$self->{invoices} = defined $user ? $user->invoices : undef;
ou simplesmente trocar a referência em seu template, de:
<%= $invoices %>
para
<%= stash 'invoices' %>
É isso - qq coisa grita ;-)
[]s,
-b
2010/4/5 Donato Azevedo <donatoaz em gmail.com>:
> Pessoal,
>
> Estou fuçando no mojolicious só por brincadeira e estou com algumas dúvidas:
>
> A primeira é: eu tenho isso na minha ação:
>
> get '/' => sub {
> my $self = shift;
> if ( my $user = $self->session->{user} ) {
> $self->stash->{invoices} = $user->user_invoices;
> }
> } => 'index';
>
> E o meu template tem:
>
> <% if ( my $user = session 'user' ) { %>
> USER: <%= $user->login %>
> TESTE USERINVOICE: <%= $invoices %>
> <% } else { %>
> NO USER!
> <% } %>
>
> No entanto, quando não usuário logado ($self->session->{user} é undef
> o mojolicious ao invés de renderizar "NO USER!", me dá um erro:
> Mon Apr 5 17:26:53 2010 error Mojolicious::Plugin::EplRenderer:67
> [3100]: Template error in "index.html.ep": Global symbol "$invoices"
> requires explicit package name at template line 7.
>
> Outro erro que tenho, é, se eu preencher o $self->stash->{invoices}
> com $schema->resultset('UserInvoices'); ele dá este erro ao executar:
> Unable to restore schema at ..\..\lib\Storable.pm (autosplit into
> ..\..\lib\auto\Storable\thaw.al) line 415
>
> any ideas?
> rgds,
> --
> Donato Azevedo
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
Mais detalhes sobre a lista de discussão Rio-pm