我想将逻辑添加到 web/templates/user/form.html.eex 中,它根据 user#newuser#edit@current_user 中呈现。但是,如果我执行以下代码,则会收到 assign @current_user not available in eex template 错误。

<%= if @current_user do %>
  <h1>Example</h1>
<% end %>

如何使 @current_userform.html.eex 中可用?

最佳答案

假设您正在使用以下内容渲染 form.html.eex:

render("form.html.eex", changeset: @changeset, conn: @conn)

并且您正在使用assigns中可用的@current_user渲染“父”模板。

您可以在模板的 @current_user 函数中传递 render :
render("form.html.eex", changeset: @changeset, conn: @conn, current_user: @current_user)

您可以通过以下方式传递assigns中的所有内容:
render("form.html.eex", @conn.assigns)

但是,您应该谨慎执行此操作,请记住显式优于隐式。

关于elixir - 如何使@current_user 在 form.html.eex 中可用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36999238/

10-10 17:20