Phoenix.ActionClauseError at POST,没有匹配的操作子句来处理请求

2023-12-09

每当我发布到 /api/subastas 时,我都会收到此错误

Phoenix.ActionClauseError at POST /api/subastas/ bad request to IascSubastas.SubastaController.create, no matching action clause to process request

如果我运行 mix phoenix.routes 我会看到 :create 已正确路由到 POST /api/subastas

这是router.ex

defmodule IascSubastas.Router do
  use IascSubastas.Web, :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 "/", IascSubastas do
    pipe_through :browser # Use the default browser stack

    get "/", PageController, :index
  end

  # Other scopes may use custom stacks.
  scope "/api", IascSubastas do
    pipe_through :api

    resources "/subastas", SubastaController, except: [:new, :edit] do
      post "/cancelar", SubastaController, :cancelar
      resources "/ofertas", OfertaController, except: [:new, :edit]
    end
  end
end

和 SubastaController

defmodule IascSubastas.SubastaController do
  use IascSubastas.Web, :controller

  alias IascSubastas.Subasta

  def index(conn, _params) do
    subastas = Repo.all from s in Subasta, preload: [:mejor_oferta]
    render(conn, "index.json", subastas: subastas)
  end

  def show(conn, %{"id" => id}) do
    subasta = Repo.get!(Subasta, id) |> Repo.preload(:mejor_oferta)
    render(conn, "show.json", subasta: subasta)
  end

  def create(conn, %{"subasta" => subasta_params}) do
    changeset = Subasta.changeset(%Subasta{mejor_oferta: nil}, subasta_params)

    case Repo.insert(changeset) do
      {:ok, subasta} ->
        conn
        |> put_status(:created)
        |> put_resp_header("location", subasta_path(conn, :show, subasta))
        |> render("show.json", subasta: subasta)
      {:error, changeset} ->
        conn
        |> put_status(:unprocessable_entity)
        |> render(IascSubastas.ChangesetView, "error.json", changeset: changeset)
    end
  end

  def update(conn, %{"id" => id, "subasta" => subasta_params}) do
    subasta = Repo.get!(Subasta, id) |> Repo.preload(:mejor_oferta)
    changeset = Subasta.changeset(subasta, subasta_params)

    case Repo.update(changeset) do
      {:ok, subasta} ->
        render(conn, "show.json", subasta: subasta)
      {:error, changeset} ->
        conn
        |> put_status(:unprocessable_entity)
        |> render(IascSubastas.ChangesetView, "error.json", changeset: changeset)
    end
  end

  def cancelar(conn, %{"subasta_id" => id}) do
    subasta = Repo.get!(Subasta, id) |> Repo.preload(:mejor_oferta)
    changeset = Subasta.changeset(subasta, %{terminada: true})

    case Repo.update(changeset) do
      {:ok, subasta} ->
        render(conn, "show.json", subasta: subasta)
      {:error, changeset} ->
        conn
        |> put_status(:unprocessable_entity)
        |> render(IascSubastas.ChangesetView, "error.json", changeset: changeset)
    end
  end

  def delete(conn, %{"id" => id}) do
    subasta = Repo.get!(Subasta, id)

    # Here we use delete! (with a bang) because we expect
    # it to always work (and if it does not, it will raise).
    Repo.delete!(subasta)

    send_resp(conn, :no_content, "")
  end
end

我只收到错误http://localhost:4000/api/subastas/,任何其他 URL 都可以。


POST 中缺少 content_type! “应用程序/json”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Phoenix.ActionClauseError at POST,没有匹配的操作子句来处理请求 的相关文章

随机推荐

  • 在应用程序中保存数据

    我已经提出申请了 这是一个显示您按下时间的按钮 每次我 杀死 应用程序时 计时器都会再次从 0 开始 自然地 我怎样才能让应用程序保存按下按钮的时间 这样当应用程序被杀死 然后你打开它时 计时器就在你停止的时候 我有一些关于如何完成此操作的
  • 在方向锁定开启的情况下强制相机横向查看

    我正在开发一款增强现实游戏 当设备的方向锁定打开时 我遇到了相机视图方向的问题 我正在使用此代码在视图内加载相机视图 AVCaptureSession session AVCaptureSession alloc init AVCaptur
  • 未封装意味着不可更改?

    我遇到了这条线有效的C public 意味着未封装 实际上 未封装意味着不可更改 尤其是 对于广泛使用的类 然而广泛使用的类最需要封装 因为 他们是能够从用更好的实现替代一种实现的能力中获益最多的人 一 作者所说的 公开意味着未封装 实际上
  • 如何在Java中读取application.yml文件

    我写了一个电子邮件程序 但我必须更改一些配置 所以在我的项目中我需要知道如何从 yaml 中读取我的 loginUrl 我的代码如下 userNotificationEmail setIsActive F userNotificationE
  • 如何将东部时区转换为中部时区

    我的时间位于东部时区 但我想将其调整为中部时区 两个时区均位于美国 我以前从来没有这样做过 我不知道如何转换它 请帮我 这是一种可能的方法 dt new DateTime 2011 02 22 16 15 20 new DateTimeZo
  • R:从循环中打印单独的迭代?

    我正在使用 R 编程语言 通常 我从循环中打印迭代 这有助于我跟踪事情 例如 my list list for i in 1 1000 tryCatch frame i rnorm 1 1 1 my list i frame i ifels
  • 为什么有些 Docker 镜像没有定义 VOLUME?

    我刚刚开始接触 Docker 如果我的问题对你来说太傻了 请原谅我 我看到一些图像 例如nginx 没有任何VOLUME定义而有些图像像mysql has VOLUME在他们的 Dockerfile 中定义 当没有定义卷时如何管理数据或文件
  • 在symfony2中引用静态模板

    我想将 Angular 与 symfony2 一起使用 为此 应该可以从像这样的引用加载模板 div div 载荷是角度的部分 我们只需提供模板的路径即可 模板不应该用树枝渲染 这可以用 symfony 实现吗 简单地制作一个没有树枝标签的
  • PDF 中的统一码

    我的程序根据要求生成相对简单的 PDF 文档 但我在处理 unicode 字符 如汉字或奇怪的数学符号 时遇到问题 要在 PDF 中写入普通字符串 请将其放在括号中 something 还可以选择使用八进制代码转义字符 527 但这最多只能
  • 使用PHP代码从多维数组获取数据

    我正在尝试获取这些数据 label gt For Rent来自多维数组 这是我的数组 Array listing id gt 0 fields gt Array 1 gt Property House 7 2 gt 30 4 gt sdfa
  • 停止预定的 JavaScript 执行

    我有一个函数 在其中定义了很多 setTimeout 函数 当用户按下按钮时 它就开始执行 我怎样才能取消它 有什么方法可以取消所有超时 假设我有多个没有名字的超时 start timer var timer setTimeout canc
  • Expressjs+socket.io+express-session

    我的 server js 中有这段代码 var app require express session require express session cookie require cookie cookieParser require c
  • 本体中实体的排序

    我有一个系统 可以在本体 通常的三重存储 中对一些领域数据进行建模 我一直在寻找一种表达复数和排序的方法 但没有通过谷歌找到任何东西 我的主要用例是 域中的一个实体可以是一系列任务 买杂货 做饭 吃饭等 但总的来说 我觉得有能力 衡量 你的
  • 此 python 代码是否使用深度优先搜索 (DFS) 来查找所有路径?

    这段代码给出在python图论官方论文 这是代码 def find all paths graph start end path path path start if start end return path if not graph h
  • rake db:migrate (mysql) [重复]

    这个问题在这里已经有答案了 可能的重复 库未加载 尝试使用 mysql2 gem 在 OS X 10 6 上运行 rails server 时出现 libmysqlclient 16 dylib 错误 为什么我收到这个错误 什么意思 我已经
  • 如何获得数组中高于某个数字的最小值?

    我有一个像这样的数组 5229561 gt 8 5229582 gt 9 5229583 gt 10 5229584 gt 11 如果数组已排序并且键是连续的 例如 100 101 102 没有 78 5 13 则可以使用二分搜索 总的来说
  • 如何以另一种形式调用PHP中的函数?

    我有一个带有名字的页面1 php里面有一个功能 现在我想调用该函数2 php在 PHP 2 中 我写了func 这个函数在1 php 但它有这个错误 Fatal error Call to undefined function func i
  • 如何以编程方式在 Selenium Jupiter 的基类中配置 WebDriver?

    我想将基于 JUnit 4 的现有 Selenium 测试迁移到 JUnit 5 为此 我想利用硒 木星 测试必须满足的一项要求是 能够在运行时切换 WebDriver 实现 基于执行环境 使用所有测试的一个公共基类 在开发人员计算机 Wi
  • Eclipselink 支持包含正则表达式的查询吗?

    我已经看到像 MySQL 这样的 DBMS 支持包含正则表达式的查询 Eclipselink 支持这个吗 我必须检索具有与某些正则表达式匹配的某些字符串属性的实体 SELECT X FROM Person X WHERE X name
  • Phoenix.ActionClauseError at POST,没有匹配的操作子句来处理请求

    每当我发布到 api subastas 时 我都会收到此错误 Phoenix ActionClauseError at POST api subastas bad request to IascSubastas SubastaControl