【发布时间】:2019-10-14 04:50:56
【问题描述】:
我正在阅读 Programming Phoenix 1.4 这本书,在为用户创建视图时遇到了一个问题。我不断收到编译错误提示
== Compilation error in file lib/rumbl_web/views/user_view.ex ==
** (CompileError) lib/rumbl_web/views/user_view.ex:3: undefined function conn/0
(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:670: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:208: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6`
尝试编译和运行项目时。 这是有问题的观点:
defmodule RumblWeb.UserView do
use RumblWeb, :view
alias Rumbl.Accounts
def first_name(%Accounts.User{name: name}) do
name
|> String.split(" ")
|> Enum.at(0)
end
def username(%Accounts.User{username: username}) do
username
end
end
如果我注释掉use RumblWeb, :view 行,项目将编译(尽管由于显而易见的原因它无法呈现视图)。我对凤凰和丹药比较陌生,所以这很令人困惑。
【问题讨论】:
-
能否请您显示
RumbleWebmudule 的view/1函数? -
@JustinWood,rumbl_web.ex 中没有
view/1函数,它是view/0函数。 -
对。错字。还是想看看函数定义。
-
@JustinWood,我无法通过将
conn添加到view()函数(或文件中的任何其他位置)来得到该错误。错误将指向rumbl_web.ex,但操作的错误消息显示错误在user_view.ex中。如果操作员发布文件不会受到伤害 - 然后我可以将其与我的比较。