From 16b067a37725a2b338e0af56778b96e4f763b7e6 Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Sat, 11 Mar 2023 23:19:37 +0100 Subject: [PATCH] Configure User with Devise bundle exec rails generate devise User --- app/models/user.rb | 4 ++ config/routes.rb | 1 + .../20230311220654_add_devise_to_users.rb | 41 +++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 db/migrate/20230311220654_add_devise_to_users.rb diff --git a/app/models/user.rb b/app/models/user.rb index 379658a..4756799 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,2 +1,6 @@ class User < ApplicationRecord + # Include default devise modules. Others available are: + # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable + devise :database_authenticatable, :registerable, + :recoverable, :rememberable, :validatable end diff --git a/config/routes.rb b/config/routes.rb index 0dd7717..5f0abca 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,5 @@ Rails.application.routes.draw do + devise_for :users resources :users # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html diff --git a/db/migrate/20230311220654_add_devise_to_users.rb b/db/migrate/20230311220654_add_devise_to_users.rb new file mode 100644 index 0000000..7f9db7a --- /dev/null +++ b/db/migrate/20230311220654_add_devise_to_users.rb @@ -0,0 +1,41 @@ +class AddDeviseToUsers < ActiveRecord::Migration[7.0] + def change + change_table :users do |t| + ## NOTE: commented fields left for reference/inclusion in future migrations + + ## Database authenticatable + t.string :encrypted_password, null: false, default: "" + + ## Recoverable + t.string :reset_password_token + t.datetime :reset_password_sent_at + + ## Rememberable + t.datetime :remember_created_at + + ## Confirmable + t.string :confirmation_token + t.datetime :confirmed_at + t.datetime :confirmation_sent_at + # Only if using reconfirmable + t.string :unconfirmed_email + + ## Trackable + # t.integer :sign_in_count, default: 0, null: false + # t.datetime :current_sign_in_at + # t.datetime :last_sign_in_at + # t.string :current_sign_in_ip + # t.string :last_sign_in_ip + + ## Lockable + # t.string :unlock_token # Only if unlock strategy is :email or :both + # t.datetime :locked_at + # Only if lock strategy is :failed_attempts + # t.integer :failed_attempts, default: 0, null: false + end + + add_index :users, :reset_password_token, unique: true + add_index :users, :confirmation_token, unique: true + # add_index :users, :unlock_token, unique: true + end +end