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

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

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

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

Ruby

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

1回答

866閲覧

ログインを正常に出来るようにしたい

tattobu

総合スコア16

Devise

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

Ruby

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

0クリップ

投稿2021/10/29 14:39

前提・実現したいこと

正しいemailとpasswordを入力してもログインができません。
データベースには保存ができています。
初心者で申し訳ありませんがお願い致します。

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

ログインができない

該当のソースコード

controller/application_controller.rb

ruby

1class ApplicationController < ActionController::Base 2 before_action :basic_auth 3 before_action :configure_permitted_parameters, if: :devise_controller? 4 5 private 6 7 def basic_auth 8 authenticate_or_request_with_http_basic do |username, password| 9 username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"] 10 end 11 end 12 13 def configure_permitted_parameters 14 devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :email, :encrypted_password, :last_name, :first_name, :last_name_kana, :first_name_kana, :birth_date]) 15 devise_parameter_sanitizer.permit(:sign_in, keys: [:email, :encrypted_password]) 16 end 17end 18

views/devise/sessions/new.html.erb

ruby

1<%= render "shared/second-header"%> 2 3<%= form_with class: 'registration-main', local: true do |f| %> 4<div class='form-wrap'> 5 <div class='form-header'> 6 <h1 class='form-header-text'> 7 会員情報入力 8 </h1> 9 </div> 10 <div class='login-flash-message'> 11 <%= flash[:notice] %> 12 <%= flash[:alert] %> 13 </div> 14 <div class="form-group"> 15 <div class='form-text-wrap'> 16 <label class="form-text">メールアドレス</label> 17 <span class="indispensable">必須</span> 18 </div> 19 <%= f.email_field :email, class:"input-default", id:"email", placeholder:"PC・携帯どちらでも可", autofocus: true %> 20 </div> 21 <div class="form-group"> 22 <div class='form-text-wrap'> 23 <label class="form-text">パスワード</label> 24 <span class="indispensable">必須</span> 25 </div> 26 <%= f.password_field :password, class:"input-default", id:"password", placeholder:"" %> 27 </div> 28 <div class='login-btn'> 29 <%= f.submit "ログイン" ,class:"login-red-btn" %> 30 </div> 31</div> 32<% end %> 33 34<%= render "shared/second-footer"%>

試したこと

devise_parameter_sanitizer.permit(:sign_in, keys: [:email, :encrypted_password])

以上のコードの追加

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

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

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

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

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

guest

回答1

0

自己解決

app/views/devise/sessions/new.html.erbのform_withに、モデルとURLを記載していないためでした。
この部分、正しくは以下です。
▼app/views/devise/sessions/new.html.erb

ruby

1<%= form_with model: @user, url: user_session_path, class: 'registration-main', local: true do |f| %>

なお、applicationコントローラーの以下の記述は不要でした。
▼applicationコントローラー

ruby

1class ApplicationController < ActionController::Base 2 #before_action :authenticate_user!, only: [:/] 不要 3 before_action :configure_permitted_parameters, if: :devise_controller? 4 5 private 6 def configure_permitted_parameters 7 devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :last_name, :first_name, :last_name_kana, :first_name_kana, :birthday]) 8 #devise_parameter_sanitizer.permit(:sign_in, keys: [:email, :password])不要 9 end 10end

投稿2021/10/29 14:47

tattobu

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問