无法在 Phoenix 中创建嵌套资源

Dav*_* B. 1 elixir phoenix-framework

我正在尝试创建一个按钮,使给定用户成为管理员。为此,我想为请求创建一个路由post /users/:id/admin。为了做到这一点,我正在尝试创建一个嵌套资源,如下所示:

resources "/users", UserController, only: [:new, :create, :index] do
  resources "/admin", UserController, only: [:post]
end
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时mix phx.routes | grep users,我只能得到这些路线:

user_path  GET     /users            StorexWeb.UserController :index
user_path  GET     /users/new        StorexWeb.UserController :new
user_path  POST    /users            StorexWeb.UserController :create
Run Code Online (Sandbox Code Playgroud)

好像未声明嵌套资源一样。我的资源声明有什么问题?我该如何解决?

Jos*_*lim 5

问题在only: [:post]. 没有这样的操作:post,所以你最终什么都没有。你可能想要这个:

resources "/users", UserController, only: [:new, :create, :index] do
  resources "/admin", UserController, only: [:create]
end
Run Code Online (Sandbox Code Playgroud)

我将在凤凰城打开一个问题,在这些情况下提出,以避免进一步混淆。