Railsのルーティングエラーの解決を支援する
-
05-07-2019 - |
質問
modify_rule
というメソッドを持つ form_questions_answers
というコントローラーがありますが、 / form_questions_answers / modify_rule / 60
への投稿を実行するときRailsが教えてくれます:
Routing Error
No route matches "/form_questions_answers/modify_rule/60" with {:method=>:post}
これが発生する理由は、routes.rbに map.resources:form_question_answers
があり、 map.connect ':controller /:action /:id'
がroutes.rbファイルの一番下、なぜ modify_rule
アクションがトリガーされないのですか?
解決
/ form_questions_answers / modify_rule / 60
は、map.resourcesベースでPOSTを受け入れません。 RESTに沿ったGETまたはPUTのいずれかです。
ルートに関する情報については、レールルーティングガイドをご覧ください。
ハッピーターキーデイ!
他のヒント
リソースベースのルートを使用している場合は、おそらくデフォルトを削除する必要があります。ルート。それは、おそらく次のような form_question_answers
ルートに新しいメンバーを追加したいということです:
map.resources 'form_questions_answers', :member => { :modify_rule => :post }
ルートへのオプションの追加に関する詳細は、こちら。
所属していません StackOverflow