deviseでのユーザー登録ができません

実現したいこと

deviseを使ってユーザー登録機能を実装しましたが、新規ユーザー登録できるようにしたいです。

発生している問題・分からないこと

deviseを使いユーザー登録機能を実装しましたが、新規ユーザー登録しそのユーザーでログインしようとすると「メールアドレスまたはパスワードが不正です」と表示されログインできません。

エラーメッセージ

error

1エラーコードは特になし

該当のソースコード

user.rb

1class User < ApplicationRecord 2 has_many :rooms 3 4 has_one_attached :photo 5 has_many :reservations 6 7 validates :full_name, :email, presence: true, length: {maximum: 50}, allow_blank: true 8 9 # Include default devise modules. Others available are: 10 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 11 devise :database_authenticatable, :registerable, 12 :recoverable, :rememberable, :validatable 13end

new.html.erb

1<h2>Sign up</h2> 2 3<div class="container"> 4 <div class="row gx-5"> 5 <div class="col"> 6 <div class="card w-100 mb-3"> 7 <div class="card-body"> 8 <h5 class="card-title text-danger h3"><strong><span class="ttl">ユーザ情報編集</span></strong></h5> 9 <p class="card-text">変更があったら更新しましょう。</p> 10 <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %> 11 <%= render "devise/shared/error_messages", resource: resource %> 12 <div class="mb-3"> 13 <label for="exampleInputEmail1" class="ttl">氏名</label> 14 <%= f.text_field :full_name, autofocus: true, placeholder: "氏名", class: "form-control" %> 15 <div id="emailHelp" class="form-text">氏名</div> 16 </div> 17 <div class="mb-4"> 18 <label for="exampleInputEmail1" class="ttl">Eメールアドレス</label> 19 <%= f.email_field :email, autofocus: true, placeholder: "Eメールアドレス", class: "form-control" %> 20 <div id="emailHelp" class="form-text">あなたのメールは他の誰とも共有しません。</div> 21 </div> 22 <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %> 23 <div>現在、次の確認を待っています:<%= resource.unconfirmed_email %></div> 24 <% end %> 25 <div class="mb-5"> 26 <label for="photo">アイコン</label> 27 <%= f.file_field :photo, autofocus: true, placeholder: "アイコン", class: "form-control", id: "photo" %> 28 </div> 29 <div class="mb-3"> 30 <label for="password" class="ttl">変更パスワード</label> 31 <%= f.password_field :password, autocomplete: "off", placeholder: "パスワード", class: "form-control", id: "password" %> 32 <div id="emailHelp" class="form-text">強力なセキュリティを確保するために、最低でも6文字以上のパスワードが必要です。</div> 33 </div> 34 <div class="mb-5"> 35 <label for="confirmation" class="ttl">変更パスワード(確認)</label> 36 <%= f.password_field :password_confirmation, autocomplete: "off", placeholder: "確認パスワード", class: "form-control", id: "confirmation" %> 37 <div id="emailHelp" class="form-text">パスワード確認: 確認のため、入力したパスワードをもう一度入力してください。同じパスワードを入力する必要があります。</div> 38 </div> 39 40 <div class="mb-2"> 41 <%= f.submit "更新", class: "btn btn-danger w-100" %> 42 </div> 43 <% end %> 44 <div class="mb-5"> 45 <%= link_to "戻る", :back, class: "btn btn-secondary w-100" %> 46 </div> 47 48 </div> 49 </div> 50 </div> 51 </div> 52</div>

routes.rb

1Rails.application.routes.draw do 2 3 devise_for :users, 4 path: '', 5 path_names: {sign_up: 'register', sign_in: 'login', edit: 'profile', sign_out: 'logout'}, 6 controllers: {registrations: 'registrations'} 7end

application_controller.erb

1class ApplicationController < ActionController::Base 2 before_action :configure_permitted_parameters, if: :devise_controller? 3 4 protected 5 def configure_permitted_parameters 6 devise_parameter_sanitizer.permit(:sign_up, keys: [:full_name]) 7 devise_parameter_sanitizer.permit(:account_update, keys: [:full_name, :photo]) 8 end 9 def after_sign_in_path_for(resource) 10 dashboard_path 11 end 12end

new.html.erb

1<h2>Log in</h2> 2 3<div class="container"> 4 <div class="row gx-5"> 5 <div class="col"> 6 <div class="card w-100 mb-3"> 7 <div class="card-body"> 8 <h5 class="card-title text-danger h3"><strong><span class="ttl">ログイン</span></strong></h5> 9 <p class="card-text">作成したアカウントでログインしてください。</p> 10 <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> 11 12 <div class="mb-5 mt-5"> 13 <div class="mb-5"> 14 <label class="ttl">Eメールアドレス</label> 15 <%= f.email_field :email, autofocus: true, placeholder: "Eメールアドレス", class: "form-control" %> 16 <div id="emailHelp" class="form-text">あなたのメールは他の誰とも共有しません。</div> 17 </div> 18 <div class="mb-5"> 19 <label class="ttl">パスワード</label> 20 <%= f.password_field :password, autocomplete: "off", placeholder: "パスワード", class: "form-control" %> 21 <div id="emailHelp" class="form-text">登録した6文字以上のパスワード入力が必要です。</div> 22 </div> 23 <% if devise_mapping.rememberable? %> 24 <div class="field mb-5"> 25 <%= f.check_box :remember_me %> 26 ログインを保持 27 </div> 28 <% end %> 29 30 <%= f.submit "ログイン", class: "btn btn-danger w-100" %> 31 <% end %> 32 <div class="mt-4"> 33 <%= render "devise/shared/links" %> 34 </div> 35 </div> 36 </div> 37 </div> 38 <div class="col"> 39 <div class="card w-100 mb-5"> 40 <div class="card-body"> 41 <h5 class="card-title text-dark h6">下記サービスアカウントでのログインはこちら</h5> 42 43 </div> 44 </div> 45 </div> 46 </div> 47</div> 48

試したこと・調べたこと

上記の詳細・結果

参考にしたサイトを確認し、問題はなさそうでした。
またユーザー登録後にデータベースを確認すると、登録したユーザー情報がありませんでした。

補足

特になし

コメントを投稿

0 コメント