我有User
和Email
支架(user
has_many
emails
)。如果用户有电子邮件,我想在Email
index
中显示User
show
模板。这是代码:
网络/控制器/ user_controller.ex
[...]
def show(conn, %{"id" => id}) do
user = Repo.get!(User, id) |> Repo.preload([:emails])
conn
|> assign(:user, user)
|> render("show.html")
end
[...]
网络/模板/用户/ show.html.eex
[...]
<%= unless Enum.empty?(@user.emails) do %>
<%= render MyApp.EmailView, "index.html", emails: @user.emails %>
<% end %>
[...]
我遇到assign @conn not available in eex template.
错误。我怎样才能做到这一点?
答案 0 :(得分:2)
您可能在@conn
的{{1}}模板中使用index.html
,但EmailView
并未自动发送render
它要渲染的模板的当前模板,所以你需要这样做:
@conn