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