Я новичок в фениксе и эликсире.Пытаясь создать форму для отправки 1 предложения в базу данных, и я получаю сообщение об ошибке, когда нажмите кнопку отправить форму.Btw.Я следую некоторому курсу, и я очень запутался.Есть коды Opa_Controller.ex
defmodule Test.OpaController do
use Test.Web, :controller
alias Test.Opa
def new(conn,_params) do
struct = %Test.Opa{}
params = %{}
changeset = Test.Opa.changeset(struct,params)
render conn, "sex.html", changeset: changeset
end
def create(conn,%{"naziv" => naziv}) do
changeset = Opa.changeset(%Opa{}, naziv)
case Repo.insert(changeset) do
{:ok, post} -> IO.inspect(post)
{:error, changeset} -> IO.inspect(changeset)
end
end
end
Test.ex
defmodule Test.Opa do
use Test.Web, :model
schema "opala" do
field :naziv, :string
end
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:naziv])
|> validate_required ([:naziv])
end
end
HTML-файл
<%= form_for @changeset, opa_path(@conn, :create), fn f -> %>
<%= text_input f, :naziv, placeholder: "naziv" %>
<%= submit "Save Topic" %>
<% end %>
Router.ex
get "/", PageController, :index
get "/opa/new", OpaController, :new
get "/hello", HelloController, :index
post "/opa", OpaController, :create
В терминале я получаю
[debug] ** (Phoenix.ActionClauseError) could not find a matching Test.OpaController.create clause
to process request. This typically happens when there is a
parameter mismatch but may also happen when any of the other
action arguments do not match. The request parameters are:
%{"_csrf_token" => "BDgWfgElRhRdSgoFBTo0BF4+P1YXNgAAtANQOf4Fi+GIlpej+Mt1eg==", "_utf8" => "✓", "opa" => %{"naziv" => "sa"}}
В браузере: https://pastebin.com/A2Z3466D