前提・実現したいこと
form_forで新規登録画面を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Routing Error No route matches [POST] "/projects/new"
該当のソースコード
projects_controller.rb
ruby
1 2class ProjectsController < ApplicationController 3 def index 4 @project = Project.new 5 end 6 def create 7 @project = Project.new(project_params) 8 task.save! 9 redirect_to projects_path, notice: "プロジェクト「#{project.name}」の作成に成功しました。" 10 end 11 12 def show 13 end 14 15 def new 16 end 17 18 def edit 19 end 20 21 private 22 23 def project_params 24 params.require(:project).permit(:name, :subtitle, :description) 25 end 26end
new.html.slim
slim
1 2h1 プロジェクト作成 3.nav.justify-content-end 4 = link_to 'プロジェクト一覧', projects_path, class: 'nav-link' 5= form_with model:@project, local: true do |f| 6 .form-group 7 = f.label :name 8 = f.text_field :name, class: 'form-control', id: 'project_name' 9 .form-group 10 = f.label :subtitle 11 = f.text_field :subtitle, class: 'form-control', id: 'project_subtitle' 12 .form-group 13 = f.label :description 14 = f.text_area :description, rows: 5, class: 'form-control', id: 'project_description' 15 .form-group 16 = f.submit nil, class: 'btn btn-primary'
routes.rb
Ruby
1Rails.application.routes.draw do 2 root to: 'projects#index' 3 resource :projects 4 #post 'projects/new', to: 'project#create' 5 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 6end
rails routes
Prefix Verb URI Pattern Controller#Action root GET / projects#index new_projects GET /projects/new(.:format) projects#new edit_projects GET /projects/edit(.:format) projects#edit projects GET /projects(.:format) projects#show PATCH /projects(.:format) projects#update PUT /projects(.:format) projects#update DELETE /projects(.:format) projects#destroy POST /projects(.:format) projects#create rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
試したこと
実際に表示されているHTMLは<form action="/projects/new" accept-charset="UTF-8" method="post">
となっていて、ルーティングにないところにリクエストが飛んでいるのはわかるのですが、変更の仕方がわからず、質問しました。
補足情報(FW/ツールのバージョンなど)
rails 5.2.1
ubuntu on WSL