Module: AffiliatableChild

Extended by:
ActiveSupport::Concern
Included in:
Challenge, Program, Project, User, Workgroup
Defined in:
app/models/concerns/affiliatable_child.rb

Instance Method Summary collapse

Instance Method Details

#add_affiliation_to(parent) ⇒ Object



14
15
16
17
18
19
20
# File 'app/models/concerns/affiliatable_child.rb', line 14

def add_affiliation_to(parent)
  if @@valid_affiliation_types.include?(parent.class.name.underscore.to_sym)
    ::Affiliation.create(parent: parent, affiliate: self)
  else
    raise "Invalid affiliation type #{parent.class.name.underscore.to_sym}, must be one of #{@@valid_affiliation_types.inspect}"
  end
end

#remove_affiliation_to(parent) ⇒ Object



22
23
24
# File 'app/models/concerns/affiliatable_child.rb', line 22

def remove_affiliation_to(parent)
  ::Affiliation.destroy_by(parent: parent, affiliate: self)
end