Если я добавлю conn
в третью строку views/user_view.ex
:
defmodule RumWeb.UserView do
use RumWeb, :view
conn #====== *** HERE ***
alias Rum.Accounts.User
def first_name(%User{name: name} ) do
name
|> IO.inspect
|> String.split(" ")
|> Enum.at(0)
end
end
Я получаю почти ту же ошибку, что и вы:
$ mix phx.server
Compiling 9 files (.ex)
warning: variable "conn" does not exist and is being expanded to "conn()", please use parentheses to remove the ambiguity or change the variable name
lib/rum_web/views/user_view.ex:3
== Compilation error in file lib/rum_web/views/user_view.ex ==
** (CompileError) lib/rum_web/views/user_view.ex:3: undefined function conn/0
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:198: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6
В середине моей ошибки нет следующего:
ensure_no_undefined_local/3-
но, возможно, это связано с различиями в версиях эликсира.
Если я поставлю conn
где-нибудь в rumbl_web.ex
, то ошибка указывает на rumbl_web.ex
, а не user_view.ex
. Вы публикуете все выходные после того, как вы делаете $ mix phx.server
?
Вы уверены, что у вас нет двух открытых окон с двумя разными версиями файла user_view.ex
? Я бы закрыл все окна вашего редактора, затем снова открыл ваш проект и снова посмотрел на user_view.ex
.
Однажды у меня произошла странная ошибка, и решение было:
../rumbl$ rm -rf _build
затем сделайте:
../rumbl$ mix phx.server
и mix перестроит ваш проект, воссоздав каталог _build
в процессе.