解決したいこと
Ruby on Rails にてアプリケーションの試作品を共有するwebアプリを作っています。
deviseを導入、データベース(SequelPro)構築完了
新規登録ページで項目を入力をし新規登録ボタンを押すと以下エラーが発生します。
解決方法を教えてください。
発生している問題・エラー
Routing Error No route matches [POST] "/user/sign_up.user"
該当するソースコード
ruby
1routes.rb 2 3Rails.application.routes.draw do 4 devise_for :user 5 root to: "prototypes#index" 6 get 'prototypes/index' 7 resources :users, only: :show 8end 9
ruby
1application.html.erb 2 3<!DOCTYPE html> 4<html> 5 <head> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 <title>ProtoSpace</title> 8 <%= csrf_meta_tags %> 9 <%= csp_meta_tag %> 10 <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css"> 11 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 12 <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 13 <link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700,900&display=swap" rel="stylesheet"> 14 </head> 15 16 <body> 17 <header class="header"> 18 <div class="inner"> 19 <div class="nav"> 20 <div class="nav__left"> 21 <%= link_to image_tag("logo.png", class: :logo), root_path %> 22 </div> 23 <% if user_signed_in? %> 24 <div class="nav__right"> 25 <%= link_to "ログアウト", destroy_user_session_path, class: :nav__logout %> 26 <%= link_to "New Proto", root_path, class: :nav__btn %> 27 </div> 28 <% else %> 29 <div class="nav__right"> 30 <%= link_to "ログイン", user_session_path, class: :nav__btn %> 31 <%= link_to "新規登録", new_user_registration_path, class: :nav__btn %> 32 </div> 33 <% end %> 34 </div> 35 </div> 36 </header> 37 <%= yield %> 38 <footer class="footer"> 39 <p class="copyright">Copyright © PROTO SPACE All rights reserved.</p> 40 </footer> 41 </body> 42</html>
ruby
1application_controller.rb 2 3class ApplicationController < ActionController::Base 4 5 before_action :configure_permitted_parameters, if: :devise_controller? 6 before_action :authenticate_user! 7 private 8 def configure_permitted_parameters 9 devise_parameter_sanitizer.permit(:sign_up, keys: [:email, :encrypted, :name, :profile, :occupation, :position]) 10 end 11end 12
ruby
1registrations 2new.html.erb 3 4<div class="main"> 5 <div class="inner"> 6 <div class="form__wrapper"> 7 <h2 class="page-heading">ユーザー新規登録</h2> 8 9 <%# 「モデル名」にはUserモデルであれば@userを渡しましょう。%> 10 <%# 「新規登録機能へのパス」は、devise導入後にrails routesを実行してdevise/registrations#createへのパスを確認し、記載してください。 %> 11 <%= form_with model: resource, as: resource_name, url: new_user_registration_path(resource_name), local: true do |f| %> 12 13 <div class="field"> 14 <%= f.label :email %><br /> 15 <%= f.email_field :email, autofocus: true, autocomplete: "email" %> 16 </div> 17 18 <div class="field"> 19 <%= f.label :password %> 20 <% if @minimum_password_length %> 21 <em>(<%= @minimum_password_length %> characters minimum)</em> 22 <% end %><br /> 23 <%= f.password_field :password, autocomplete: "new-password" %> 24 </div> 25 26 <div class="field"> 27 <%= f.label :password_confirmation %><br /> 28 <%= f.password_field :password_confirmation, autocomplete: "new-password" %> 29 </div> 30 31 <div class="field"> 32 <%= f.label :name %><br /> 33 <%= f.text_field :name %> 34 </div> 35 36 <div class="field"> 37 <%= f.label :profile %><br /> 38 <%= f.text_area :profile, class: :form__text %> 39 </div> 40 41 <div class="field"> 42 <%= f.label :occupation %><br /> 43 <%= f.text_area :occupation, class: :form__text %> 44 </div> 45 46 <div class="field"> 47 <%= f.label :position %><br /> 48 <%= f.text_area :position, class: :form__text %> 49 </div> 50 51 <div class="actions"> 52 <%= f.submit "新規登録", class: :form__btn %> 53 </div> 54 <% end %> 55 </div> 56 </div> 57</div>
ruby
1model 2user.rb 3 4class User < ApplicationRecord 5 # Include default devise modules. Others available are: 6 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 7 devise :database_authenticatable, :registerable, 8 :recoverable, :rememberable, :validatable 9 validates :text, presence: true 10 11 has_many :prototype 12 has_many :comments 13 14end
自分で試したこと
エラー文よりルーティングの指定先が合致していないという仮説を立てて
pathの確認を行ったが間違いは見つけられませんでした。
また同じような現象がないか検索をして見ると
解決策はパスの指定であることが多いと分かったが解決に導くことが出来なかった。