2021-01-24 11:57:26
elixir phoenix ルーティングの Path helper が重複しないようにする
elixir phoenix ルーティングの Path helper が重複しないようにする
どういう問題が起きるか
以下のように、User側のコントローラーとAdmin側のコントローラーの path helperが同じ index_path
として決まります。これでは、 Routesモジュールで呼び出す際に Routes.index_path
となり区別が付きません。実際にどうなるかは試していませんが、見た目での区別が付きません。
index_path GET / Nao000dotcomWeb.User.IndexController :index
index_path GET /admin Nao000dotcomWeb.Admin.IndexController :index
公式ドキュメントに記載されています
Scoped Routes
https://hexdocs.pm/phoenix/routing.html#scoped-routes
以下のように別スコープを定義して、as: :admin
とすれば解決します。
scope "/admin", Nao000dotcomWeb, as: :admin do
pipe_through :browser
get "/", Admin.IndexController, :index
end
以下のように admin_index_path
となりました。
index_path GET / Nao000dotcomWeb.User.IndexController :index
admin_index_path GET /admin Nao000dotcomWeb.Admin.IndexController :index
参考資料
終わり
終わり