首页 > 解决方案 > Phoenix:有没有办法在另一个视图中给一个视图起别名?

问题描述

所以我试图在另一个视图中给一个视图起别名。但是我收到一个错误,我调用的 json 无法呈现。

员工视图

alias AuthAppWeb.EdtrView

def render("employee_dtr.json", %{employee: employee}) do
%{
  id: employee.id,
  personal_info: employee.personal_info,
  edtr: render_one(employee.edtr, __MODULE__, "edtr.json", as: EdtrView)
}end

edtr_view

def render("edtr.json", %{edtr: edtr}) do
%{
  id: edtr.id,
  m_in: edtr.m_in,
  m_out: edtr.m_out,
  a_in: edtr.a_in,
  a_out: edtr.a_out,
  o_in: edtr.o_in,
  o_out: edtr.o_out,
  status: edtr.status,
  sub_status: edtr.sub_status,
  dtr_date: edtr.dtr_date
}end

标签: elixirphoenix-framework

解决方案


第二个参数应该是您尝试调用的视图。您当前正在调用__MODULE__,它将扩展到正在调用的模块。在你的情况下,EmployeeView. 您将需要以下内容。

render_one(employee.edtr, EdtrView, "edtr.json")

推荐阅读