在父级的show模板中呈现子项的索引模板

时间:2016-05-08 17:12:34

标签: elixir phoenix-framework

我有UserEmail支架(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.错误。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您可能在@conn的{​​{1}}模板中使用index.html,但EmailView并未自动发送render它要渲染的模板的当前模板,所以你需要这样做:

@conn