前提・実現したいこと
ルーティングネストを用いて、詳細ページに遷移した状態でその詳細ページに紐づいたコメントを投稿する機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
error
1Routing Error 2No route matches [POST] "/prototypes/5"
該当のソースコード
ruby
1#ルーティングのネスト 2resources :prototypes do 3 resources :comments, only: :create 4end
ruby
1#コントローラーでの処理 2def create 3 if @comment = Comment.create(comment_params) 4 @prototype = Prototype.find(params[:id]) 5 @comment = Comment.new 6 redirect_to :show 7 else 8 render :show 9 end 10end 11private 12def comment_params 13 params.require(:comment).permit(:text).merge(user_id: current_user.id, protorype_id: params[:protorype_id]) 14end
html
1<!--遷移したページに紐づいたコメントの入力フォーム--> 2<%= form_with(mocdl: [@prototype, @comment], local: true) do |f|%> 3 <div class="field"> 4 <%= f.label :text, "コメント" %><br /> 5 <%= f.text_field :text %> 6 </div> 7 <div class="actions"> 8 <%= f.submit "送信する", class: :form__btn %> 9 </div> 10<% end %>
試したこと
本来、送られるはずのURLパターンが
/prototypes/:prototype_id/comments(.:format)
であるのを確認し、自分の記述したform_withで送られているURLパターンが
/prototypes/5
なので原因がform_withである可能性が高いのはわかるのですが、構文も間違っていない様に感じます。
またサーバーの再起動なども試しましたが解決しませんでした。
補足情報(FW/ツールのバージョンなど)
ruby on rails v6.0.0
回答1件
あなたの回答
tips
プレビュー