Generate an initial User model
This commit is contained in:
parent
c2f1f5450d
commit
28d99528de
|
@ -0,0 +1,6 @@
|
|||
class User < ActiveRecord::Base
|
||||
# Include default devise modules. Others available are:
|
||||
# :lockable, :timeoutable and :omniauthable
|
||||
devise :database_authenticatable, :registerable, :confirmable,
|
||||
:recoverable, :rememberable, :trackable, :validatable
|
||||
end
|
|
@ -1,4 +1,5 @@
|
|||
Rails.application.routes.draw do
|
||||
devise_for :users
|
||||
# The priority is based upon order of creation: first created -> highest priority.
|
||||
# See how all your routes lay out with "rake routes".
|
||||
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
class DeviseCreateUsers < ActiveRecord::Migration
|
||||
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.string :current_sign_in_ip
|
||||
t.string :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.string :first_name, null: false
|
||||
t.string :last_name, null: false
|
||||
t.string :organisation
|
||||
t.boolean :hide_email, null: false, default: true
|
||||
t.string :photo_url
|
||||
t.string :mobile_phone, null: false
|
||||
t.text :biography
|
||||
t.string :github
|
||||
t.string :twitter
|
||||
|
||||
t.timestamps
|
||||
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
|
|
@ -0,0 +1,14 @@
|
|||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
sequence(:email) { |n| "user-#{n}@example.org" }
|
||||
|
||||
factory :user do
|
||||
first_name 'John'
|
||||
last_name 'Doe'
|
||||
password 'password'
|
||||
password_confirmation 'password'
|
||||
mobile_phone '0883444555'
|
||||
email
|
||||
end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe User do
|
||||
it 'lets Devise handle email and password validations' do
|
||||
expect(build(:user)).to be_a Devise::Models::Validatable
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue