removes user_id column from User model to use idiomatic Rails automatic IDs

This commit is contained in:
Joseph Mastey
2017-10-07 09:34:26 -06:00
parent c4f0b91534
commit b6c2259b88
29 changed files with 421 additions and 430 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ class Message < ApplicationRecord
validates_presence_of :creator_id, :receiver_id, :message
def creator_name
if creator = User.where(user_id: self.creator_id).first
if creator = User.where(id: self.creator_id).first
creator.full_name
else
"Name unavailable"
+17 -31
View File
@@ -10,17 +10,17 @@ class User < ApplicationRecord
validates_presence_of :email
validates_uniqueness_of :email
validates_format_of :email, with: /.+@.+\..+/i
attr_accessor :skip_user_id_assign
before_save :assign_user_id, on: :create
validates_format_of :email, :with => /.+@.+\..+/i
has_one :retirement, dependent: :destroy
has_one :paid_time_off, dependent: :destroy
has_one :work_info, dependent: :destroy
has_many :performance, dependent: :destroy
has_many :pay, dependent: :destroy
has_many :messages, foreign_key: :receiver_id, dependent: :destroy
before_save :hash_password
has_one :retirement, foreign_key: :user_id, primary_key: :user_id, dependent: :destroy
has_one :paid_time_off, foreign_key: :user_id, primary_key: :user_id, dependent: :destroy
has_one :work_info, foreign_key: :user_id, primary_key: :user_id, dependent: :destroy
has_many :performance, foreign_key: :user_id, primary_key: :user_id, dependent: :destroy
has_many :messages, foreign_key: :receiver_id, primary_key: :user_id, dependent: :destroy
has_many :pay, foreign_key: :user_id, primary_key: :user_id, dependent: :destroy
before_create { generate_token(:auth_token) }
after_create { generate_token(:auth_token) }
before_create :build_benefits_data
def build_benefits_data
@@ -36,11 +36,6 @@ class User < ApplicationRecord
"#{self.first_name} #{self.last_name}"
end
# # Instead of the entire user object being returned, we can use this to filter.
# def as_json
# super(only: [:user_id, :email, :first_name, :last_name])
# end
private
def self.authenticate(email, password)
@@ -55,26 +50,17 @@ class User < ApplicationRecord
return auth
end
def assign_user_id
unless @skip_user_id_assign.present? || self.user_id.present?
user = User.order("user_id").last
uid = if user && user.user_id && !(User.exists?(user_id: "#{user.user_id.to_i + 1}"))
user.user_id.to_i + 1
else
1
end
self.user_id = uid.to_s if uid
end
end
def hash_password
if password.present? && password_changed?
self.password = Digest::MD5.hexdigest(password)
if will_save_change_to_password?
self.password = Digest::MD5.hexdigest(self.password)
end
end
def generate_token(column)
self[column] = Encryption.encrypt_sensitive_value(self.user_id)
generate_token(column) if User.exists?(column => self[column])
begin
self[column] = Encryption.encrypt_sensitive_value(self.id)
end while User.exists?(column => self[column])
self.save!
end
end