Я пытаюсь проверить user_id на id ресурса в моей функции elixir, но я новичок в этом языке, и я не знаю, знаю, почему я получаю эту ошибку web/controllers/admin/project_controller.ex:12: undefined function resource/0
web/controllers/admin/project_controller.ex: 12: undefined function resource/0 - elixir
Вот мой код:
def index(conn, %{"user_id" => user_id}) do
user = Repo.get(User, user_id)
|> Repo.preload(:projects)
cond do
resource = Guardian.Plug.current_resource(conn) && user.id == resource.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
Могу ли я на самом деле установка ресурса к значению Guardian.Plug.current_resource(conn)
или в том, что не работает, как эликсир. Я немного смущен.
Где вы получаете 'resource.id' от этой линии' ресурс = Guardian.Plug.current_resource (Conn) && пользователя. id == resource.id -> '? Кроме того, в этой строке структуры управления 'cond' вы не можете привязать/сопоставить шаблон здесь. Вы можете проверить только условия, когда выражения истинны/ложны. –
Внесение задания в круглые скобки должно исправить это. Я обновил свой первоначальный ответ, из которого код в вопросе: http://stackoverflow.com/a/41432647/320615. – Dogbert