会員登録機能を作成した

はじめに

railsで会員登録機能を実装するには、「Devise」を使用するということは知っている。

【Rails】deviseの導入手順 #Ruby – Qiitaを参考にして、ローカルのオリジナルアプリケーションに会員登録機能を実装していく。

Gemファイルに追記

【Rails】deviseの導入手順 #Ruby – Qiita

74行目に追記した。

Gemfile

deviseの設定ファイルを作成する

【Rails】deviseの導入手順 #Ruby – Qiita

コマンドを実行したらエラーが出た。bundle installをしていないのが原因か。

ターミナル

bundle installをしてみる。

無事に、deviseがインストールできたみたいだ。

先ほどのコマンドを打ってみると、上手く行った。

モデルを作成する

【Rails】deviseの導入手順 #Ruby – Qiita

上手く行った。

マイグレーションする

【Rails】deviseの導入手順 #Ruby – Qiita

マイグレーションファイルの内容をデータベースに反映させる。

db/migrate/20240908122858_devise_create_users.rb

マイグレーションの内容は、コメントアウトを除くと以下のようになっていた。

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データベースに接続して、テーブルの中身を確認する方法に書いた。

新規登録画面を確認してみる

【Rails】deviseの導入手順 #Ruby – Qiita

http://localhost:3000/users/sign_upで、新規登録画面にアクセスすることができた。

http://localhost:3000/users/sign_up

ビューを作成する

【Rails】deviseの導入手順 #Ruby – Qiita

いろんなビューファイルが作成できた。

ターミナル

会員登録してみる

情報を入力して、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