【发布时间】:2017-05-16 21:31:56
【问题描述】:
我正在尝试使用监护人身份验证来测试用户 ID 是否等于资源 ID。如果没有当前令牌并且我尝试转到正在检查令牌的 url,我会收到此错误 function nil.id/0 is undefined or private。我来自红宝石背景,我不知道为什么它说.id 是一个函数?以及为什么这会引发错误。这是我的代码:
def index(conn, %{"user_id" => user_id}) do
user = Repo.get(User, user_id)
|> Repo.preload(:projects)
cond do
user.id == Guardian.Plug.current_resource(conn).id ->
conn
|> render("index.html", projects: user.projects, user: user)
:error ->
conn
|> put_flash(:info, "No access")
|> redirect(to: session_path(conn, :new))
end
end
如果没有 current_resource 则打印此错误。但是如果没有 current_resource 我只想让它继续到 :error 路径并呈现会话路径。
【问题讨论】: