Stuck following Phoenix guide: "no route found for GET /users"

I am following the Phoenix 1.3.3 Guide, section Contexts. So far I have:

  • created the user template files (using mix phx.gen.html)
  • updated the router file with resources "/users", UserController
  • ran mix ecto.migrate
  • started the server with mix phx.server
  • pointed the browser to http://localhost:4000/users

The error I get is (Phoenix.Router.NoRouteError) no route found for GET /users (HelloWeb.Router)

Looking at my route data I can’t see anything wrong with that:

mix phx.routes
page_path  GET     /                HelloWeb.PageController :index
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

My router contains:

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

  get "/", PageController, :index
  resources "/users", UserController
end

Anything else I am overlooking?

The full error trace is:

[info] GET /users
[debug] ** (Phoenix.Router.NoRouteError) no route found for GET /users (HelloWeb.Router)
    (hello) lib/hello_web/router.ex:1: HelloWeb.Router.__match_route__/4
    (hello) lib/phoenix/router.ex:307: HelloWeb.Router.call/2
    (hello) lib/hello_web/endpoint.ex:1: HelloWeb.Endpoint.plug_builder_call/2
    (hello) lib/plug/debugger.ex:122: HelloWeb.Endpoint."call (overridable 3)"/2
    (hello) lib/hello_web/endpoint.ex:1: HelloWeb.Endpoint.call/2
    (plug) lib/plug/adapters/cowboy/handler.ex:16: Plug.Adapters.Cowboy.Handler.upgrade/4
    (cowboy) /Users/arthur/code/Sloveens.org/Elixir/hello/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4

Assuming you’ve a controller with a index function?

Have you restarted your phoenix after changing the routes file? As far as I remember its one of those files that require manual restarts of the server.

DANG!

pwd revealed that the directory I started the server from was inside the Trash.

Thanks for your attention!

1 Like