【发布时间】:2017-03-16 10:22:02
【问题描述】:
我的路线配置为:
$rn = $rn->any( '/users', sub{ my $c = shift; $DB::single = 1; 1; } ); # first cb
$rn = $rn->any( '/me', sub{ my $c = shift; $DB::single = 1; 1; } ); # second cb
$rn = $rn->any( '/avatar' )->to( 'avatar#test' ); # action
当我请求 GET /users/me/avatar 时,我得到第二个回调被执行。
但我希望运行avatar#test 操作。
我很困惑。 DOC 声明:
cb stash 值不会被嵌套路由继承,可用于绕过控制器并改为执行回调。
/avatar 嵌套在 /me 中,cb 不应被继承,但在调度时我得到 stack 和 cb 值。这是转储:
[
{ action => "test", cb => sub { ... }, controller => "avatar" },
]
请有人澄清一下。为什么第二个cb 存在于堆栈中而 DOC 状态不应该存在?
【问题讨论】:
标签: perl mojolicious