前提・実現したいこと
railsでdeviseを使いログイン機能を実装しようとしていますが、新規ユーザー登録をしようとしたらRouting Errorが出てしまいます。
ユーザー登録機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Routing Error No route matches [POST] "/users/sign_up" Routes Routes match in priority from top to bottom
該当のソースコード
HTML
1devise/registrations/new.html.erb 2<%= form_with model: @user, url: new_user_registration_path, class: 'registration-main', local: true do |f| %> 3 <div class='form-wrap'> 4 <div class='form-header'> 5 <h1 class='form-header-text'> 6 アカウント新規作成 7 </h1> 8 </div> 9 10 <%# エラー発生時にメッセージが表示。%> 11 <%#= render 'shared/error_messages', model: f.object %> 12 13 <div class="form-group"> 14 <div class='form-text-wrap'> 15 <label class="form-text">ニックネーム</label> 16 <span class="indispensable">必須</span> 17 </div> 18 <%= f.text_area :nickname, class:"input-default", id:"nickname", placeholder:"ニックネームを設定してください", maxlength:"40", autofocus: true %> 19 </div> 20 <div class="form-group"> 21 <div class='form-text-wrap'> 22 <label class="form-text">メールアドレス</label> 23 <span class="indispensable">必須</span> 24 </div> 25 <%= f.email_field :email, class:"input-default", id:"email", placeholder:"PC・携帯どちらでも可" %> 26 </div> 27 <div class="form-group"> 28 <div class='form-text-wrap'> 29 <label class="form-text">パスワード</label> 30 <span class="indispensable">必須</span> 31 </div> 32 <%= f.password_field :password, class:"input-default", id:"password", placeholder:"6文字以上の半角英数字" %> 33 <p class='info-text'>※英字と数字の両方を含めて設定してください</p> 34 </div> 35 <div class="form-group"> 36 <div class='form-text-wrap'> 37 <label class="form-text">パスワード(確認)</label> 38 <span class="indispensable">必須</span> 39 </div> 40 <%= f.password_field :password_confirmation, class:"input-default", id:"password-confirmation", placeholder:"同じパスワードを入力して下さい" %> 41 42 <div class='register-btn'> 43 <%= f.submit "アカウント作成" ,class:"register-red-btn" %> 44 </div> 45 </div> 46 <% end %>
controller
1class ApplicationController < ActionController::Base 2 before_action :basic_auth 3 before_action :configure_permitted_parameters, if: :devise_controller? 4 5 protected 6 7 def configure_permitted_parameters 8 devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :email, :password]) 9 end 10 11 private 12 13 def basic_auth 14 authenticate_or_request_with_http_basic do |username, password| 15 username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"] 16 end 17 end 18 19 20end
routes
1Rails.application.routes.draw do 2 devise_for :users 3 root to: 'tricks#index' 4 resources :tricks, only: [:index, :new] 5end 6 7
試したこと
devise_for :usersの位置を変えてみる。
rails routesコマンドでpathの確認し、form_withに設定しているurlを変えてみる。
ということをしてみましたが特に変化は起こりませんでした。
原因が分かる方がいましたら回答よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
rails 6.0.0
mysql2
あなたの回答
tips
プレビュー