Sprankelprachtig aan/afmeldsysteem

activity.rb 606B

1234567891011121314151617181920212223242526
  1. class Activity < ApplicationRecord
  2. belongs_to :group
  3. has_many :participants
  4. has_many :people, through: :participants
  5. validates :public_name, presence: true
  6. validates :start, presence: true
  7. validate :deadline_before_start
  8. def organizers
  9. self.organizers.includes(:person).where(is_organizer: true)
  10. end
  11. def is_organizer(person)
  12. Participant.exists?(person_id: person.id, activity_id: self.id, is_organizer: true)
  13. end
  14. private
  15. def deadline_before_start
  16. if self.deadline && self.deadline > self.start
  17. errors.add(:deadline, 'must be before start')
  18. end
  19. end
  20. end