質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

2480閲覧

rails deviseを使い新規ユーザー登録するとRouting Error No route matches [POST] "/users/sign_up" が起こる。

tomo_4130

総合スコア0

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/08 13:38

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問