<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=KOI8-R" http-equiv="Content-Type">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Я бридж не юзаю. Ещё я попробовал из приватного метода в контролере
вызвать render_not_found на что у меня получился выше описанный
эффект.<br>
<br>
Типа:<br>
<br>
sub index {<br>
my $self = shift;<br>
#Допустим дёргаем параметры и пополняем stash чемнибуть.<br>
$self->_parse_param();<br>
#Гденить в дальнейшем коде хапнули die() из-за нехватки
параметров.<br>
die();<br>
return $self->render();<br>
}<br>
<br>
sub _parse_param {<br>
my $self = shift; <br>
# Тут уже понятно что дальнейшая обработка бесполезна.<br>
return $self->render_not_found() <br>
unless defined $self->req->params->param('foo');<br>
... <br>
return;<br>
}<br>
<br>
Вернул 500 вместо ожидаемой 404. Я предположил что после вызова
render_not_found уже как бы понятно что мы хотим отдать. Но
mojolicious продолжает выполение<br>
и пополнение stash разными значениями которые влияют на предидущий
результат. <br>
<br>
<br>
On 15.03.2011 18:03, Анатолий Шарифулин wrote:
<blockquote
cite="mid:AANLkTinV-s+gUDirM-59py1BGgUJdpnmZwJv07oMNJvH@mail.gmail.com"
type="cite">return self->render_not_found;<br>
<br>
но лучше через бридж не пускать, чем в прикладном коде
разруливать.<br>
<br>
<div class="gmail_quote">2011/3/15 <a moz-do-not-send="true"
href="mailto:voron3x@gmail.com">voron3x@gmail.com</a> <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:voron3x@gmail.com">voron3x@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">Привет!<br>
<br>
Друзья подскажите пожалуйста в чём может быть дело. При вызове
метода $self->render_not_found() продолжает выполняться
метод контролера.<br>
<br>
sub index {<br>
my $self = shift;<br>
$self->render_not_found('hahahaha');<br>
$self->stash(foo => 'bar');<br>
$self->client->log->debug("Stash " .
Dumper($self->stash()));<br>
return $self->render();<br>
}<br>
<br>
Причём прикол ещё вот в чём, например если после
$self->render_not_found('hahahaha'); будет например die то
mojolicious выкинит старничку 404 но со статусом 500, а не
404. =(<br>
<br>
sub index {<br>
my $self = shift;<br>
$self->render_not_found('hahahaha');<br>
$self->stash(foo => 'bar');<br>
die('hana!');<br>
$self->client->log->debug("Stash " .
Dumper($self->stash()));<br>
return $self->render();<br>
}<br>
<br>
Как мне прервать выполения запроса после вызова
render_not_found?<br>
<font color="#888888">
-- <br>
Moscow.pm mailing list<br>
<a moz-do-not-send="true" href="mailto:moscow-pm@pm.org"
target="_blank">moscow-pm@pm.org</a> | <a
moz-do-not-send="true" href="http://moscow.pm.org"
target="_blank">http://moscow.pm.org</a><br>
</font></blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
С уважением,<br>
Анатолий Шарифулин.<br>
</blockquote>
<br>
</body>
</html>