Попытка добавить User-View и User controller, но я получаю странную ошибку компиляции.
Из Программирование Phoenix: неопределенная функция page_path / 2 Я подозреваю, что это также связано с созданными файлами, но я до сих пор не понимаю, как разрешить это
это мой user_controller.ex в папке контроллера:
defmodule ChatterWeb.UserController do
use ChatterWeb, :controller
alias Chatter.User
def index(conn, _params) do
users = Repo.all(User)
render(conn, "index.html", users: users)
end
end
это мой user_view.ex в папке views:
defmodule ChatterWeb.UserView do
use ChatterWeb, :view
end
это раздел маршрутизации в моем маршрутизаторе.пример:
scope "/", ChatterWeb do
pipe_through :browser
resources "/users", UserController
get "/", PageController, :index
end
это мой user.ex (который имеет схему):
defmodule Chatter.User do
use Ecto.Schema
import Ecto.Changeset
schema "users" do
field :email, :string
field :encrypt_pass, :string
field :password, :string, virtual: true
timestamps()
end
@doc false
def changeset(user, attrs) do
user
|> cast(attrs, [:email, :password])
|> validate_required([:email, :password])
|> unique_constraint(:email)
end
end
И это ошибка, которую я получаю при компиляции:
== Compilation error in file lib/chatter_web/views/user_view.ex ==
** (CompileError) lib/chatter_web/views/user_view.ex:16: undefined function user_path/3
(elixir) src/elixir_locals.erl:107: :elixir_locals."-ensure_no_undefined_local/3-lc$^0/1-0-"/2
(elixir) src/elixir_locals.erl:107: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:208: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6
Я не понимаю, почему это говорит ex:16
, если файл имеет только 3 строки кода.Я предполагаю, что ключевое слово use
вставляет код из другого файла, но из-за этого очень сложно точно определить, где именно происходит ошибка.