0

ネストされたポリモーフィックリソース、質問があります。これは、試験の下にネストされている可能性があります。UIでは、送信メソッドとしてPOSTを使用して、フォームを動的に作成します。これは、新しいアクションである/ excams / 1/questionsへのPOSTで正常に機能します。

問題は、編集アクションでルーティングエラーが発生することです([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 に答える