2024.09.10(更新日: 2024.11.17)
会員登録機能を作成した
はじめに
railsで会員登録機能を実装するには、「Devise」を使用するということは知っている。
【Rails】deviseの導入手順 #Ruby – Qiitaを参考にして、ローカルのオリジナルアプリケーションに会員登録機能を実装していく。
Gemファイルに追記
74行目に追記した。
deviseの設定ファイルを作成する
コマンドを実行したらエラーが出た。bundle installをしていないのが原因か。
bundle installをしてみる。
無事に、deviseがインストールできたみたいだ。
先ほどのコマンドを打ってみると、上手く行った。
モデルを作成する
上手く行った。
マイグレーションする
マイグレーションファイルの内容をデータベースに反映させる。
マイグレーションの内容は、コメントアウトを除くと以下のようになっていた。
class DeviseCreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
t.string :reset_password_token
t.datetime :reset_password_sent_at
t.datetime :remember_created_at
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
end
end
usersテーブルを作成して、一意制約のかかったemailカラムとreset_password_tokenカラムを追加している。
追加されたテーブルとカラムを確認してみる
usersテーブルの中身を確認することができた。
詳細は、PostgreSQLデータベースに接続して、テーブルの中身を確認する方法に書いた。
新規登録画面を確認してみる
http://localhost:3000/users/sign_upで、新規登録画面にアクセスすることができた。
ビューを作成する
いろんなビューファイルが作成できた。
会員登録してみる
情報を入力して、Sign upを押す。
トップページにリダイレクトした。
内部の処理を見ていこう。以下のように内蔵サーバーのログが残されていた。
重要な部分は、POSTで情報を受け取って、データベースにその情報を登録している部分。
Started POST "/users" for ::1 at 2024-09-10 08:27:43 +0900
Processing by Devise::RegistrationsController#create as TURBO_STREAM
Parameters: {"authenticity_token"=>"[FILTERED]", "user"=>{"email"=>"hiroki.hiroki@icloud.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
内部の処理は、deviseがやってくれているだろう。
投稿ID : 24771
コメントを残す