From ada471a13795cf7e3305ef2a3612754033cc33de Mon Sep 17 00:00:00 2001 From: Fizz Orange Date: Thu, 22 Sep 2016 23:01:57 -0500 Subject: [PATCH] rails g devise User --- app/models/user.rb | 30 +++++++++++++ config/routes.rb | 1 + .../20160923035948_devise_create_users.rb | 42 +++++++++++++++++++ db/schema.rb | 19 ++++++++- spec/factories.rb | 3 ++ spec/models/user_spec.rb | 5 +++ 6 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 app/models/user.rb create mode 100644 db/migrate/20160923035948_devise_create_users.rb create mode 100644 spec/models/user_spec.rb diff --git a/app/models/user.rb b/app/models/user.rb new file mode 100644 index 0000000..e57f162 --- /dev/null +++ b/app/models/user.rb @@ -0,0 +1,30 @@ +# == Schema Information +# +# Table name: users +# +# id :integer not null, primary key +# email :string default(""), not null +# encrypted_password :string default(""), not null +# reset_password_token :string +# reset_password_sent_at :datetime +# remember_created_at :datetime +# sign_in_count :integer default(0), not null +# current_sign_in_at :datetime +# last_sign_in_at :datetime +# current_sign_in_ip :inet +# last_sign_in_ip :inet +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# index_users_on_email (email) UNIQUE +# index_users_on_reset_password_token (reset_password_token) UNIQUE +# + +class User < ApplicationRecord + # Include default devise modules. Others available are: + # :confirmable, :lockable, :timeoutable and :omniauthable + devise :database_authenticatable, :registerable, + :recoverable, :rememberable, :trackable, :validatable +end diff --git a/config/routes.rb b/config/routes.rb index 1daf9a4..e37e1b5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,2 +1,3 @@ Rails.application.routes.draw do + devise_for :users end diff --git a/db/migrate/20160923035948_devise_create_users.rb b/db/migrate/20160923035948_devise_create_users.rb new file mode 100644 index 0000000..f577233 --- /dev/null +++ b/db/migrate/20160923035948_devise_create_users.rb @@ -0,0 +1,42 @@ +class DeviseCreateUsers < ActiveRecord::Migration[5.0] + def change + create_table :users do |t| + ## Database authenticatable + t.string :email, null: false, default: "" + 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 + + ## Trackable + t.integer :sign_in_count, default: 0, null: false + t.datetime :current_sign_in_at + t.datetime :last_sign_in_at + t.inet :current_sign_in_ip + t.inet :last_sign_in_ip + + ## Confirmable + # t.string :confirmation_token + # t.datetime :confirmed_at + # t.datetime :confirmation_sent_at + # t.string :unconfirmed_email # Only if using reconfirmable + + ## Lockable + # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts + # t.string :unlock_token # Only if unlock strategy is :email or :both + # t.datetime :locked_at + + + t.timestamps null: false + end + + add_index :users, :email, unique: true + add_index :users, :reset_password_token, unique: true + # add_index :users, :confirmation_token, unique: true + # add_index :users, :unlock_token, unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 16d1e0d..e3cb129 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20160921173341) do +ActiveRecord::Schema.define(version: 20160923035948) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -30,6 +30,23 @@ t.index ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree end + create_table "users", force: :cascade do |t| + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false + t.string "reset_password_token" + t.datetime "reset_password_sent_at" + t.datetime "remember_created_at" + t.integer "sign_in_count", default: 0, null: false + t.datetime "current_sign_in_at" + t.datetime "last_sign_in_at" + t.inet "current_sign_in_ip" + t.inet "last_sign_in_ip" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["email"], name: "index_users_on_email", unique: true, using: :btree + t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree + end + create_table "versions", force: :cascade do |t| t.string "item_type", null: false t.integer "item_id", null: false diff --git a/spec/factories.rb b/spec/factories.rb index 1c9bf2b..96b2b0c 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -1,2 +1,5 @@ FactoryGirl.define do + factory :user do + + end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb new file mode 100644 index 0000000..47a31bb --- /dev/null +++ b/spec/models/user_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe User, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end