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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

Q&A

0回答

960閲覧

エラー Routing Error No route matches [GET] …

h2_hero_hh

総合スコア2

Devise

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

0グッド

0クリップ

投稿2021/04/06 10:28

編集2021/04/06 11:23

前提・実現したいこと

一通りの実装が終わり、再度新規登録を行った時に上記のエラーが発生してしまいました。
いままで新規登録は出来ており、deviseやそれに伴うルーティングやコントローラーは導入後一切変更していなかったのに、急にエラーが出てしまい、混乱しております。

みなさまのご協力をいただきたいです。
よろしくお願いいたします。

発生している問題・エラーメッセージ

Routing Error No route matches [GET] "/students"

イメージ説明
イメージ説明

該当のソースコード

config/routes.rb

Ruby

1Rails.application.routes.draw do 2 3 devise_for :teachers, controllers: { 4 sessions: 'teachers/sessions', 5 passwords: 'teachers/passwords', 6 registrations: 'teachers/registrations' 7 } 8 9 devise_for :students, controllers: { 10 sessions: 'students/sessions', 11 passwords: 'students/passwords', 12 registrations: 'students/registrations' 13 } 14 15 root to: "homes#index" 16 17 resources :homerooms do 18 resources :comments do 19 end 20 collection do 21 get 'search' 22 end 23 end 24 25 resources :schools do 26 resources :messages 27 end 28 29end

app/controllers/students/registrations_controller.rb

Ruby

1# frozen_string_literal: true 2 3class Students::RegistrationsController < Devise::RegistrationsController 4 before_action :configure_sign_up_params, only: [:create] 5 # before_action :configure_account_update_params, only: [:update] 6 7 # GET /resource/sign_up 8 # def new 9 # super 10 # end 11 12 # POST /resource 13 # def create 14 # super 15 # end 16 17 # GET /resource/edit 18 # def edit 19 # super 20 # end 21 22 # PUT /resource 23 # def update 24 # super 25 # end 26 27 # DELETE /resource 28 # def destroy 29 # super 30 # end 31 32 # GET /resource/cancel 33 # Forces the session data which is usually expired after sign 34 # in to be expired now. This is useful if the user wants to 35 # cancel oauth signing in/up in the middle of the process, 36 # removing all OAuth session data. 37 # def cancel 38 # super 39 # end 40 41 # protected 42 43 # If you have extra params to permit, append them to the sanitizer. 44 def configure_sign_up_params 45 devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :username, :phonenumber, :birthday]) 46 end 47 48 # If you have extra params to permit, append them to the sanitizer. 49 # def configure_account_update_params 50 # devise_parameter_sanitizer.permit(:account_update, keys: [:attribute]) 51 # end 52 53 # The path used after sign up. 54 def after_sign_up_path_for(resource) 55 homerooms_path(resource) 56 end 57 58 # The path used after sign up for inactive accounts. 59 # def after_inactive_sign_up_path_for(resource) 60 # super(resource) 61 # end 62end

app/views/students/registrations/new.html.erb

Ruby

1<%= form_with model: @student, url: student_registration_path, class: 'registration-main', local: true do |f| %> 2 <div class='student-form'> 3 <div class='form-header'> 4 <h1 class='form-header-text'> 5 生徒向け会員情報入力 6 </h1> 7 </div> 8 <div class="form-group"> 9 <div class='form-text-wrap'> 10 <label class="form-text">氏名</label> 11 <span class="indispensable">必須</span> 12 </div> 13 <%= f.text_area :name, class:"input-default", id:"name", placeholder:"例) 山田太郎", maxlength:"40" %> 14 </div> 15 <div class="form-group"> 16 <div class='form-text-wrap'> 17 <label class="form-text">ユーザーネーム</label> 18 <span class="indispensable">必須</span> 19 </div> 20 <%= f.text_area :username, class:"input-default", id:"username", placeholder:"例) タロウ", maxlength:"40" %> 21 </div> 22 <div class="form-group"> 23 <div class='form-text-wrap'> 24 <label class="form-text">パスワード</label> 25 <span class="indispensable">必須</span> 26 </div> 27 <%= f.password_field :password, class:"input-default-sp", id:"password", placeholder:"半角英数字6文字以上でご入力してください" %> 28 <p class='info-text'>※英字のみ、数字のみではご登録できません</p> 29 </div> 30 <div class="form-group"> 31 <div class='form-text-wrap'> 32 <label class="form-text">パスワード(確認)</label> 33 <span class="indispensable">必須</span> 34 </div> 35 <%= f.password_field :password_confirmation, class:"input-default-sp", id:"password-confirmation", placeholder:"確認のため、パスワードを再入力してください" %> 36 </div> 37 <div class="form-group"> 38 <div class='form-text-wrap'> 39 <label class="form-text">メールアドレス</label> 40 <span class="indispensable">必須</span> 41 </div> 42 <%= f.email_field :email, class:"input-default", id:"email", placeholder:"student@sample.com", autofocus: true %> 43 </div> 44 <div class="form-group"> 45 <div class='form-text-wrap'> 46 <label class="form-text">電話番号</label> 47 <span class="indispensable">必須</span> 48 </div> 49 <%= f.telephone_field :phonenumber, class:"input-default", id:"phonenumber", placeholder:"ハイフンなしでご入力してください", autofocus: true %> 50 </div> 51 <div class="form-group"> 52 <div class='form-text-wrap'> 53 <label class="form-text">生年月日</label> 54 <span class="indispensable">必須</span> 55 </div> 56 <div class='input-birth-wrap'> 57 <%= raw sprintf(f.date_select(:birthday, class:'select-birth', id:"birth-date", use_month_numbers: true, prompt:'--', start_year: 2000, end_year: (Time.now.year - 5), date_separator: '%s'), "<p> 年 </p>", "<p> 月 </p>") + "<p> 日 </p>" %> 58 </div> 59 </div> 60 <div class="form-group"> 61 <h2 class='form-bottom-text'> 62 <span>利用規約</span>・個人情報の取扱について同意する 63 </h2> 64 </div> 65 <div class="actions"> 66 <%= f.submit "会員登録", class:"register-red-btn" %> 67 </div> 68 </div> 69<% end %>

rails routes

Prefix Verb URI Pattern new_student_session GET /students/sign_in(.:format) students/sessions#new student_session POST /students/sign_in(.:format) students/sessions#create destroy_student_session DELETE /students/sign_out(.:format) students/sessions#destroy new_student_password GET /students/password/new(.:format) students/passwords#new edit_student_password GET /students/password/edit(.:format) students/passwords#edit student_password PATCH /students/password(.:format) students/passwords#update PUT /students/password(.:format) students/passwords#update POST /students/password(.:format) students/passwords#create cancel_student_registration GET /students/cancel(.:format) students/registrations#cancel new_student_registration GET /students/sign_up(.:format) students/registrations#new edit_student_registration GET /students/edit(.:format) students/registrations#edit student_registration PATCH /students(.:format) students/registrations#update PUT /students(.:format) students/registrations#update DELETE /students(.:format) students/registrations#destroy POST /students(.:format) students/registrations#create search_homerooms GET /homerooms/search(.:format) homerooms#search homerooms GET /homerooms(.:format) homerooms#index POST /homerooms(.:format) homerooms#create new_homeroom GET /homerooms/new(.:format) homerooms#new edit_homeroom GET /homerooms/:id/edit(.:format) homerooms#edit homeroom GET /homerooms/:id(.:format) homerooms#show PATCH /homerooms/:id(.:format) homerooms#update PUT /homerooms/:id(.:format) homerooms#update DELETE /homerooms/:id(.:format) homerooms#destroy

試したこと

ルーティング・コントローラーの確認

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

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

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

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

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

hatsu

2021/04/06 10:39

ログを見ながら推測で質問するのですが、会員登録するためにStudentレコードを作成すると思うのですが、その作成にそもそも失敗しているとかってないでしょうか?ログを見るともしかしたらStudentの作成に失敗しているのではと思いました。
hatsu

2021/04/06 10:52

送っていただいた画像をみるとデータはなさそうな気がしますが、そんなことないでしょうか?
h2_hero_hh

2021/04/06 10:55

先程違うテーブルに新たなカラムを追加した際に、rollbackしました。
siruku6

2021/04/06 11:10 編集

No route matches [GET] "/students" というエラーであれば、studentsテーブルにレコードがあろうとなかろうと関係ないです。 routes.rbの記載が間違っている、もしくは足りないためにエラーが発生しています。 $ rails routes もしくは $ bundle exec rails routes の実行結果を質問文に掲載してみてください。 多分、railsを普段使っている方ならすぐに原因がわかって回答してくださるのではないかと思います。
h2_hero_hh

2021/04/06 11:24

修正いたしました。 ※文字オーバーしたため、一部rails routesを削除しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問