Elixir Phoenix.Route.NoroutError

Elixir Phoenix.Route.NoroutError,elixir,phoenix-framework,Elixir,Phoenix Framework,我正在阅读《凤凰城编程》一书,在第60页添加了/Users/newroute之后,我的路由器似乎已经停止正常工作 当我尝试导航到我得到的任何/用户路径时 找不到GET/Users Rumbl.Router的路由 我的router.ex文件如下所示: defmodule Rumbl.Router do use Rumbl.Web, :router pipeline :browser do plug :accepts, ["html"] plug :fetch_sessio

我正在阅读《凤凰城编程》一书,在第60页添加了/Users/newroute之后,我的路由器似乎已经停止正常工作

当我尝试导航到我得到的任何/用户路径时

找不到GET/Users Rumbl.Router的路由

我的router.ex文件如下所示:

defmodule Rumbl.Router do
  use Rumbl.Web, :router

  pipeline :browser do
    plug :accepts, ["html"]
    plug :fetch_session
    plug :fetch_flash
    plug :protect_from_forgery
    plug :put_secure_browser_headers
  end

  pipeline :api do
    plug :accepts, ["json"]
  end

  scope "/", Rumbl do
    pipe_through :browser # Use the default browser stack

    get "/", PageController, :index
    resources "/users", UserController, only: [:index, :show, :new, :create]

  end

end
我的控制器如下所示:

defmodule Rumbl.UserController do
  use Rumbl.Web, :controller
  alias Rumbl.User

  def index(conn, _params) do
    users = Repo.all(User)
    render conn, "index.html", users: users
  end

  def show(conn, %{"id" => id}) do
    user = Repo.get(User, id)
    render conn, "show.html", user: user
  end

  def new(conn, _params) do
    changeset = User.changeset(%User{})
    render conn, "new.html", changeset: changeset
  end

end
运行mix phoenix.routes返回:

page_path  GET   /           Rumbl.PageController :index
user_path  GET   /users      Rumbl.UserController :index
user_path  GET   /users/new  Rumbl.UserController :new
user_path  GET   /users/:id  Rumbl.UserController :show
user_path  POST  /users      Rumbl.UserController :create
在添加新路线之前,它一直运行良好。我试着移除新的路线和它带来的所有东西,然后回到以前的方式,只需

get "/users", UserController, :index
get "/users/:id", UserController, :show
但它仍然不起作用

我重新启动了phoenix服务器,并尝试从头开始重新创建router.ex文件。我不知所措,这到底是怎么回事

以下是堆栈跟踪:

[debug] ** (Phoenix.Router.NoRouteError) no route found for GET /Users (Rumbl.Router)
(rumbl) web/router.ex:1: Rumbl.Router.__match_route__/4
(rumbl) lib/phoenix/router.ex:307: Rumbl.Router.call/2
(rumbl) lib/rumbl/endpoint.ex:1: Rumbl.Endpoint.plug_builder_call/2
(rumbl) lib/plug/debugger.ex:122: Rumbl.Endpoint."call (overridable 3)"/2
(rumbl) lib/rumbl/endpoint.ex:1: Rumbl.Endpoint.call/2
(plug_cowboy) lib/plug/cowboy/handler.ex:18: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) /Users/richardschmidt/Code/Elixir/rumbl/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
/用户和/或用户不一样


尝试使用downcased版本的路径:/users、/users/new。

经常提交会有帮助。我看到您正在尝试返回到最新的工作解决方案,但您已经没有了它。即使以最基本的方式使用git,它也会对您有很大帮助。我同意。不知道为什么这次我没有使用git我想问题不在于你在浏览器中访问的路线,而是你在其他地方引用了一条不存在的路线。你能发布错误的完整堆栈跟踪吗?@Sheharyar我添加了堆栈跟踪,我看到你仍然在访问/用户。Phoenix routes区分大小写,因此您需要访问/访问用户。如果仍然不起作用,请运行mix do clean、compile、重新启动服务器并重试。这就是问题所在。我以为我已经尝试了/users,但我忽略了一个事实,那就是我的浏览器正在将它自动更正为/users。哎呀!