Hi I’m new to elixir and I have a problem when i render one view using many, all of this happens when I call get_users the error its this:
# Could not render "usuario.json" for UsuariosWeb.UserView, please define a matching clause for render/2 or define a template at "lib/usuarios_web/templates/user/*". No templates were compiled for this module. Assigns:
my view its this:
defmodule UsuariosWeb.UserView do
use UsuariosWeb, :view
def render("usuarios.json", %{usuarios: usuarios}) do
%{usuarios: render_many(usuarios, UsuariosWeb.UserView, "usuario.json")}
end
def render("usuario.json", %{usuario: usuario}) do
%{
id: usuario.id,
name: usuario.name,
email: usuario.email,
estado: usuario.estado
}
end
end
and my contoller its this:
def show_usuarios(conn, _params) do
usuarios = Usuarios.User.buscar_usuarios()
case usuarios != [] do
true ->
conn
|>put_status(200)
|> put_resp_content_type("application/json")
|>render("usuarios.json", %{usuarios: usuarios})
false ->
{:error, "no hay usuarios"}
end
end
def show_usuario(conn, %{"id" => id}) do
case Usuarios.User.buscar_usuario(id) do
nil->
{:error, "usuario no encontrado!"}
usuario->
conn
|> put_status(200)
|> render("usuario.json", %{usuario: usuario})
end
end