full_stack_twitter_clone/app/models/user.rb

20 lines
496 B
Ruby

class User < ApplicationRecord
has_many :sessions
has_many :tweets
validates :username, presence: true, length: { minimum: 3, maximum: 64 }
validates :password, presence: true, length: { minimum: 8, maximum: 64 }
validates :email, presence: true, length: { minimum: 5, maximum: 500 }
validates_uniqueness_of :username
validates_uniqueness_of :email
after_validation :hash_password
private
def hash_password
self.password = BCrypt::Password.create(password)
end
end