2017-07-25 40 views
1

我可以掛鉤before_render,然後進行下一步:如何在Mojolicious中觸發一些控制器子程序before_render?

sub before_render_handler { 
    my $c = shift; 

    my $extra = $c->can('some_sub'); 
    $extra->($c) if $extra; 
    return; 
} 

但是當沒有動作模板呈現的$cMojolicious::Controller,而不是目標控制器。
例如,如果我們有user/show並且App::Conroller::User沒有show子例程。

儘管在DOC

中流過的電流控制器對象和渲染參數

我們來到這裏默認的控制器,而不是電流。

如何調用App::Controller::User::some_sub當我們渲染模板user/show爲控制器沒有show的行動?

**
作爲解決方法,我們可以爲每個這樣的模板創建裸露的動作,但這看起來太難看了。

UPD
即使動作的存在,但沒有明確的$c->render渲染是默認的控制器的情況下

回答

0

我在每個控制器使用一個包羅萬象的子「視圖」,只是路徑的非到那裏的行動網址。

my $r = $self->routes 
# 
# You have to match other routes before come to non-action route. 
# 
$r->route('/#controller')->to(action => 'view'); 
+0

請您介紹一下這將如何工作? –

相關問題