I'd like to get a data structure from ecto which allow to write iteraly something like this in my HTML :
<%= genders.name %>
So I think I should have :
[{name: "Male", id: 1}, {name: "Female", id: 2}]
Right now my controller run well
defmodule HexProjectWeb.LandingController do
use HexProjectWeb, :controller
alias HexProject.Gender
def index(conn, _params) do
genders = HexProject.Repo.all(Gender) |> Enum.map(&{&1.name, &1.id})
conn
|> assign(:genders, genders)
|> render("index.html")
#render conn, "index.html", genders: genders
end
end
But it return me genders like this:
[{Male, 1}, {Female, 2}]
And I don't know how to show this.
So I tried
genders = HexProject.Repo.all(
from g in Gender,
select: %{name: g.name, id: g.id}
)
And it return me an error
function HexProjectWeb.LandingController.init/1 is undefined (module HexProjectWeb.LandingController is not available)
edit: full error
edit2: router.ex
defmodule HexProjectWeb.Router do
use HexProjectWeb, :router
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
end
pipeline :api do
plug :accepts, ["json"]
end
scope "/", HexProjectWeb do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
get "/landing", LandingController, :index
resources "/genders", LandingController
end
# Other scopes may use custom stacks.
# scope "/api", HexProjectWeb do
# pipe_through :api
# end
end
Thank you for help.
HexProjectWeb.LandingControllermodule? From that error it looks like you're using this module name in the router but Elixir can't find that module. - Dogbert