0

我有一个嵌套的多态资源问题,它可能嵌套在考试下面。在 UI 中,我使用 POST 作为提交方法动态构建表单。这适用于新操作,POSTing to /exams/1/questions。

问题是,对于编辑操作,我收到路由错误(没有匹配的路由 [POST])。我检查了路由,可以看到这是一个有效错误 - 有一条 PUT 路由连接到更新方法。

我的问题是为什么使用 POST 作为表单方法的脚手架模型的编辑操作可以正常工作,而我的表单提交会生成上面的路由错误。

以下是我的 routes.rb 中的路线:

  resources :exams do
    resources :questions
  end

这是动态生成的表格

<form method="POST" action="/exams/1/questions/9">
    <input name="authenticity_token" type="hidden" value="XXYYZZ=">
    <input name="[question]template" value="Image Answers"><input name="[question]text" value="Which of these is a duck?">
</form>

我知道我可以将 post :create 添加到问题的成员以手动映射它,但我想知道为什么这不能开箱即用。

4

1 回答 1

0

一个快速测试应用程序显示标准 form_for 包含一个方法字段,其中指定了 put。将此字段添加到我动态生成的表单中解决了这个问题。

于 2012-09-03T15:34:08.113 回答