Sprankelprachtig aan/afmeldsysteem

person.rb 852B

123456789101112131415161718192021222324252627282930313233343536373839
  1. class Person < ApplicationRecord
  2. has_one :user
  3. validates :email, presence: true, uniqueness: true
  4. validates :first_name, presence: true
  5. validates :last_name, presence: true
  6. validates :is_admin, presence: true
  7. validate :birth_date_cannot_be_in_future
  8. before_validation :not_admin_if_nil
  9. before_save :update_user_email, if: :email_changed?
  10. def full_name
  11. if self.infix
  12. [self.first_name, self.infix, self.last_name].join(' ')
  13. else
  14. [self.first_name, self.last_name].join(' ')
  15. end
  16. end
  17. private
  18. def birth_date_cannot_be_in_future
  19. if self.birth_date > Date.today
  20. errors.add(:birth_date, "can't be in the future.")
  21. end
  22. end
  23. def not_admin_if_nil
  24. self.is_admin ||= false
  25. end
  26. def update_user_email
  27. if not self.user.nil?
  28. self.user.update!(email: self.email)
  29. end
  30. end
  31. end