Elixir Phoenixのドキュメントを読み漁る Routing
use HelloWeb, :router
と書いてRouterであると宣言している感じ
get
とかは match/5
なマクロで、ほかにも POST, PUT, PATCH, DELETE, OPTIONS, CONNECT, TRACE and HEAD.
があるよ
最初の引数はpath、2つめは処理をするController
複数のルーティング定義をした場合は上から順に見ていって、マッチした部分で処理を終了する
resources
というのを使うとちょっと楽ができる
resources "/users", UserController
とするだけで、
user_path GET /users HelloWeb.UserController :index user_path GET /users/:id/edit HelloWeb.UserController :edit user_path GET /users/new HelloWeb.UserController :new user_path GET /users/:id HelloWeb.UserController :show user_path POST /users HelloWeb.UserController :create user_path PATCH /users/:id HelloWeb.UserController :update PUT /users/:id HelloWeb.UserController :update user_path DELETE /users/:id HelloWeb.UserController :delete
と解釈される。
もちろん only とか except で必要なものだけに絞ることもできる
forward
を使うと他のPlugに処理を渡せる
パスヘルパーもあるよ
resource
のネストもできる!便利だ
スコープ付きルートも定義できるよ scope "/admin", as: :admin do
とか scope "/admin", HelloWeb.Admin, as: :admin do
みたいにね
ところで pipe_through :browser ってなんだ?
https://hexdocs.pm/phoenix/routing.html#pipelines
ぐぐってたらいいまとめがあった
- 作者: Dave Thomas,笹田耕一,鳥井雪
- 出版社/メーカー: オーム社
- 発売日: 2016/08/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る