如何在Phoenix框架中创建基本表单和帖子响应

时间:2018-01-08 10:31:16

标签: elixir phoenix-framework

我正在寻找一个非常简单的基本工作岗位回复示例。应用程序只需要有两个路由/控制器。第一个是包含HTML表单的主页,另一个是嵌入式表单的响应。

令人惊讶的是,所有在线类似代码的例子都是完全臃肿的(恕我直言),其代码我不明白。

就目前而言,我得到的错误是要求一个CSRF令牌(是的,我知道那是什么)。在我在线查看的一些代码中,表单有一行看起来像这样生成它:

<input type="hidden" name="csrf_token" value="<%= csrf_token(@conn) %>">

当我将上面的行添加到我的表单时,我收到一条错误,指出csrf_token()函数未定义。

到目前为止,我所拥有的是:

HTML

<form action="/create" method="post">
    <input type="text" name="todo">
    <input type="submit">
</form>

路由器

 scope "/", ProjWeb do
    pipe_through :browser # Use the default browser stack

    get "/", PageController, :index
    post "/create", TodoController, :new
  end

的PageController

defmodule ProjWeb.PageController do
  use ProjWeb, :controller

  def index(conn, _params) do
    render conn, "index.html"
  end
end

TodoController

defmodule ProjWeb.TodoController do
  use ProjWeb, :controller
  def new(conn, _params) do
    render conn, "index.html"
  end

end

如何使用我目前的代码使帖子请求正常工作?

谢谢

1 个答案:

答案 0 :(得分:3)

%= Plug.CSRFProtection.get_csrf_token()字段中添加此value并尝试。