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
|
Rails.application.routes.draw do
|
||||||
|
devise_for :users
|
||||||
# The priority is based upon order of creation: first created -> highest priority.
|
# The priority is based upon order of creation: first created -> highest priority.
|
||||||
# See how all your routes lay out with "rake routes".
|
# 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