Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 访问连接或';分配';从视野内_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 访问连接或';分配';从视野内

Elixir 访问连接或';分配';从视野内,elixir,phoenix-framework,Elixir,Phoenix Framework,我是新来凤凰城的,来自罗尔。看起来这些视图类似于Rails帮助程序,可能是放置帮助程序函数的地方 如果这是真的,我们如何从视图中访问连接或连接的分配 这是我的问题示例 该应用程序显示所有用户的列表。但我只想为当前登录的用户显示API令牌。因此,我认为UserView中的方法适合在模板中执行类似操作: <b><%= first_name(@user) %></b> (api_token: <%= display_token(@user) %>) 非

我是新来凤凰城的,来自罗尔。看起来这些视图类似于Rails帮助程序,可能是放置帮助程序函数的地方

如果这是真的,我们如何从视图中访问连接或连接的分配

这是我的问题示例

该应用程序显示所有用户的列表。但我只想为当前登录的用户显示API令牌。因此,我认为
UserView
中的方法适合在模板中执行类似操作:

<b><%= first_name(@user) %></b> (api_token: <%= display_token(@user) %>)

非常感谢您的见解。

在Phoenix中,视图中没有自动传递给函数的状态。您必须将
@conn
作为参数传递给
display\u token

模板:

<b><%= first_name(@user) %></b> (api_token: <%= display_token(@conn, @user) %>)

(您还需要使用pin运算符将
当前用户
与作为参数传递的
用户
进行匹配。我已在上面的代码中修复了此问题。)

谢谢!函数式编程对我来说是一种范式转换,但我发现Phoenix/Elixir非常有趣。那很好用。
<b><%= first_name(@user) %></b> (api_token: <%= display_token(@conn, @user) %>)
def display_token(conn, user) do
  case conn.assigns.current_user do
    ^user -> user.api_token
    nil -> ""
    _ -> "hidden"
  end
end