フリマアプリのログイン機能実装の際にターミナルに現れたエラーの解消方法です。
deviseを入れてログイン機能を実装中にターミナルに以下のエラーを発見しました。
1。赤いいつものエラー画面にはなりませんでした。
2。データーベースに記録されずに新規登録画面に戻ります。
3。ターミナルのエラーは以下です。
=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "first_name"=>"前田", "last_name"=>"卓大", "first_name_prono"=>"マエダ", "last_name_prono"=>"タクオ", "birthday(1i)"=>"1930", "birthday(2i)"=>"1", "birthday(3i)"=>"1"}, "commit"=>"会員登録"}
Unpermitted parameter: :encrypted_password
(0.2ms) BEGIN
User Exists? (0.3ms) SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'sample@aaaaaa' LIMIT 1
(0.1ms) ROLLBACK
##着目点
1点目:Unpermitted(許可されていない) parameter: :encrypted_password
許可されていないパスワードとは???
2点目:メールの後でロールバック(rollback)???
ここで
@magatama さん「deviseで登録できない疑うところ6点」を参照しました
(大変勉強になりました)
deviseを用いてログイン機能を実装した場合いは
❶view
<%= f.password_field :password, class:"input-default",...... %>
①passwordをviewファイルに入力
②encrypted_passwordをカラム名にする
以下はdeviseに実装内容になります。
1.viewでpassword
とpassword_confimationが同じかチェック
2.(同じならば)view受け取ったpasswordをdevise_controllerで'encryped_password'に暗号化した文字列を返す
実際に暗号化されてデータベースに入ったpasswordは以下です。
$2a$12$DH1OsQXerMUhOzVxW6T/Z.xnjabsf8unyo6OeeMZhOgWy57mexsJm
私の間違いはviewファイル内でencrypted_password入力としていた点です。
passwordにするとうまくいきました