ダッシュで奪取

レガシーSIer → webエンジニア(見習い) 新しく知ったことのメモを書いています。

【Amon2】ルーティングの設定

前回はテーブルの作成までやりました。

目次

  1. ルーティングを記載
  2. ビューを作成
  3. 参考URL
この記事の目標
  • リクエストごとに、表示されるビューを切り替えられるようにする

1. ルーティングを記載

一覧表示画面のindexと、新規登録画面のnewを仮で作成します。

lib/amon2/tasklist/Web/Dispatcher.pm
package amon2::tasklist::Web::Dispatcher;
use strict;
use warnings;
use utf8;
use Amon2::Web::Dispatcher::RouterBoom;

any '/' => sub {
    my ($c) = @_;
    return $c->render('index.tx');
};

get '/new' => sub {
    my ($c) = @_;
    return $c->render('new.tx');
};

1;
  • '/' へのリクエスト(getまたはpost)で、 index.tx をレスポンス

  • '/new' へのリクエスト(get)で、new.tx をレスポンス

2. ビューを作成

tmpl 配下に、ルーティングに対応するビューを作成。
ルーティングが正しく動いているか分かれば良いだけなので、現時点での中身は適当に作っておく。

tmpl/index.tx
: cascade "include/layout.tx"
: override content -> {
index
: }
tmpl/new.tx
: cascade "include/layout.tx"
: override content -> {
new
: }
  • ビューのコードは、:override content -> { 〜 :} の間に記載する。

  • tmpl/include/layout.tx の、<: block content -> { } :>部分に、それぞれのビューが埋め込まれた状態で表示される。

  • Railsで言うと、application.html.erbみたいなイメージ

起動して、画面を確認してみる

$ carton exec -- perl -Ilib script/amon2-tasklist-server
  • ルートパス:「index」が画面に表示される
  • /new:「new」が画面に表示される

→ ルーティングの設定ができた!ヤッタ-

3. 参考URL