2017-11-26 8 views
1

入れ子のリソースをレールで使用する方法を学んでいます。簡単で再現性を保つため、2つのリソースpostscommentsを持つ非常に簡単なブログアプリをセットアップしました。コードの大部分は足場によって生成されています。私は成功した各ポスト下記comments表示するpost#showを変更した入れ子になったリソースをレールに使用するときにform_withを変更する方法

は、Add New Commentへのリンクもnew commentフォームをレンダリングします。しかし、私はコメントを保存し、ルーティングエラーを取得することはできません。

ActionController::RoutingError (No route matches [POST] "/posts/1/comments/new"

コメント部分の形の比較営巣資源前

元/:後/修正

<%= form_with(model: comment, local: true) do |form| %> 

入れ子のリソース:

<%= form_with(url: new_post_comment_path, 
    scope: :comment, local: true) do |form| %> 

コードをgithub repoに、別のブランチmasterにネストされたリソースなし、nestedRoutesにネストされたリソースを入れてプッシュしました。コミュニティの助けに感謝します。

注:Nested Resources w/ Rails 5.1 form_withへの回答が役に立たなかった。

答えて

1

あなたが渡しているURLがnew_post_comment_pathであるように見えます。あなたのフォームが作成パスに行きたいと思ったときです。あなたのルートに基づいて、これはpost_comments_pathのように見えます。

これは、エラーが表示され、newパス(GETのみ)に対してPOSTメソッドが定義されていないためです。

関連する問題