Hi i am new to phoenix and elixir and i am trying to make a textbox that insert 1 data into database and have some error :
== Compilation error in file lib/zivot_web/controllers/topic_controller.ex ==
** (KeyError) key :otp_app not found in: []
(elixir) lib/keyword.ex:389: Keyword.fetch!/2
lib/ecto/repo/supervisor.ex:62: Ecto.Repo.Supervisor.compile_config/2
lib/zivot_web/controllers/topic_controller.ex:3: (module)
(stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:208: anonymous fn/4 in Kernel.ParallelCompiler.sp
repo.ex:
defmodule Zivot.Repo do
use Ecto.Repo,
otp_app: :zivot,
adapter: Ecto.Adapters.Postgres
end
tabela.ex
defmodule Zivot.Tabela do
use Ecto.Schema
import Ecto.Changeset
schema "topics" do
field :topic, :string
timestamps()
end
@doc false
# def changeset(struct, params) do
# struct
# |> cast(params, [:topic])
# |> validate_required([:topic])
# end
end
defmodule ZivotWeb.Tabela do
use Ecto.Schema
import Ecto.Changeset
def changeset(struct, params) do
struct
|> cast(params, [:topic])
|> validate_required([:topic])
end
end
defmodule ZivotWeb.TopicController do
use ZivotWeb, :controller
use Ecto.Repo
alias Zivot.Tabela
def new(conn, params) do
struct = %Tabela{}
params = %{}
changeset = ZivotWeb.Tabela.changeset(struct,params)
render conn, "new.html", changeset: changeset
end
# def create(conn, %{"tabela" => topic_params}) do
# changeset = ZivotWeb.Tabela.changeset(%Tabela{}, topic_params)
# case Repo.insert(changeset) do
# {:ok, post} ->
#conn
# |> put_flash(:info, "Topic created")
# |> redirect(to: Routes.topic_path(conn, :index))
# {:error, changeset} ->
# render conn, "new.html", changeset: changeset
# end
#end
end
new.html
<%= form_for @changeset, Routes.topic_path(@conn, :create), fn f -> %>
<%= text_input f, :topic %>
<%= submit "Save Topic" %>
<% end %>