URLを動的に生成する場合は、ルートの名前を後で参照することができます。あなたの例では、あなたのコードの後半でこれを行うことができます:
my $link = $self->url_for('cities_new_form')
と$link
は自動的/cities/new
で終わるURLが移入されるだろう。あなたのルートにダイナミックなパーツがある場合、あなたは気になることができます。たとえば:
$r->route('/cities/:cityname')
->via('get')
->to(controller => 'cities', action => 'new_form')
->name('cities_new_form');
はその後、/cities/newyork
で終わるでしょう
my $link = $self->url_for('cities_new_form', cityname => 'newyork');
そして$link
のようなURLを生成することができます。
これは簡単な例ですが、経路が複雑になると、かなり複雑なものを作り上げることができます。
ルートに名前を付けないと、デフォルト名が取得されます。デフォルト名は、その中の英数字の連結だけです。それは長いルートのために退屈になるので、名前を短縮して使用することができます。
MojoliciousのドキュメントのNamed Routesも参照してください。