update statement loop for struct elixir phoenix-framework

statement - No se puede expandir struct-elixir/phoenix



s elixir (2)

Los módulos en Elixir deben ser referidos por su nombre completo o un alias de él. Puede cambiar todas las Locations a AwesomeLunch.Locations , o si desea usar un nombre más corto, puede llamar a un alias en ese módulo:

defmodule AwesomeLunch.LocationsController do alias AwesomeLunch.Locations ... end

Estoy tratando de mostrar un formulario en la pantalla. Pero sigo recibiendo este error cuando intento iniciar el servidor. locations_controller.ex == ** (CompileError) web/controllers/locations_controller.ex:5: Locations.__struct__/1 is undefined, cannot expand struct Locations . Por cierto, soy nuevo en el elixir, así que probablemente estoy haciendo algo realmente obvio.

Aquí está mi código:

locations.controller.ex

def new(conn, _params) do changeset = Locations.changeset(%Locations{}) render conn, "new.html", changeset: changeset end def create(conn, %{"locations" => %{ "start" => start, "end" => finish }}) do changeset = %AwesomeLunch.Locations{start: start, end: finish} Repo.insert(changeset) redirect conn, to: locations_path(conn, :index) end

VER

<h1>Hey There</h1> <%= form_for @changeset, locations_path(@conn, :create), fn f -> %> <label> Start: <%= text_input f, :start %> </label> <label> End: <%= text_input f, :end %> </label> <%= submit "Pick An Awesome Lunch" %> <% end %>

modelo

defmodule AwesomeLunch.Locations do use AwesomeLunch.Web, :model use Ecto.Schema import Ecto.Changeset schema "locations" do field :start field :end end def changeset(struct, params // %{}) do struct |> cast(params, [:start, :end]) |> validate_required([:start, :end]) end end

Como dije, recibo este error:

locations_controller.ex == ** (CompileError) web/controllers/locations_controller.ex:5: Locations.__struct__/1 is undefined, cannot expand struct Locations


Tuve el mismo error y para mí funcionó configurando el controlador, de esta manera:

defmodule AwesomeLunch.LocationsController do use AwesomeLunch.Web, :controller alias AwesomeLunch.Locations ... end