記事投稿機能の実装をしているところ、Webブラウザ上にて下記のようなエラーが表示されてしまいました。
https://gyazo.com/44a6cc57502052dcd62e2347ada801f0
Routing Error No route matches [POST] "/post/new" Rails.root: /Users/apple/create/portfolio Application Trace | Framework Trace | Full Trace Routes Routes match in priority from top to bottom
これは、ルーティングのエラーで、本来は、POSTメソッドでなきゃいけないものを、GETメソッドになっていてデータが送れない?というエラーだと仮説しています。
『追記です』
コントローラーファイルとフォームページのviewファイルとルーティングファイルを載せました。posts_controller.rbファイルの中の記述で、newアクションとcreateアクションで同じ記述をしていますが、これはどちらでコードが動いているのか確認していました。今後修正していきます。今回のエラーは、フォームを作成中に起きたので原因はこの三つのファイルかなと思っています。ファイルの確認をどうかよろしくお願いします。。
『追記です』
posts/new.html.haml
= render partial: 'shared/header' %body .container .row .col-md-8.col-md-offset-2 %h2 ブログ記事投稿・編集 = form_with local:true, model: @article do |f| .form-date.form-group .blog-name %label.blog-label 日付 = f.date_field :dating, class: "input-time", name: "post_date", size: "20", placeholder: "日付を入力してください", style: "font-weight: bold;" .form-title.form-group .blog-name %label.blog-label タイトル = f.text_field :title, class: "input-title", name: "title", placeholder:"タイトルを入力してください。", style: "font-weight: bold;" .form-letter.form-group .blog-name %label.blog-label 本文 = f.text_area :text, class: "input-control", rows: "15", name: "body", placeholder: "本文を入力してください。", style: "font-weight: bold;" .form-input = f.submit class: "btn btn-primary btn-sm", value: "投稿する"
posts_controller.rb
class PostsController < ApplicationController class Posts def new @article = Article.new(blogs_params) # インスタンスに保存成功した場合の処理 if @article.save flash[:success] = "ユーザーを登録しました" redirect_to @article # インスタンスの保存に失敗した場合の処理 else flash[:danger] = "ユーザーの登録に失敗しました" render :new end end def create # ストロングパラメータから精査されたデータだけをインスタンスに格納 @article = Article.new(blogs_params) # インスタンスに保存成功した場合の処理 if @article.save flash[:success] = "ユーザーを登録しました" redirect_to @article # インスタンスの保存に失敗した場合の処理 else flash[:danger] = "ユーザーの登録に失敗しました" render :new end end private def blogs_params params.require(:article).permit(:dating, :title, :text) end end end
routes.rb
Rails.application.routes.draw do # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html root to: "top#index" resources :posts end