
* User can create programming group with other users for exercise * Submission is shared in a group * Also adjust specs
16 lines
486 B
Ruby
16 lines
486 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ProgrammingGroupMembership < ApplicationRecord
|
|
belongs_to :user, polymorphic: true
|
|
belongs_to :programming_group
|
|
|
|
validate :unique_membership_for_exercise
|
|
validates :user_id, uniqueness: {scope: %i[programming_group_id user_type]}
|
|
|
|
def unique_membership_for_exercise
|
|
if user.programming_groups.where(exercise: programming_group.exercise).any?
|
|
errors.add(:base, :already_exists, id_with_type: user.id_with_type)
|
|
end
|
|
end
|
|
end
|