Module: AffiliatableParent

Extended by:
ActiveSupport::Concern
Included in:
Space
Defined in:
app/models/concerns/affiliatable_parent.rb

Instance Method Summary collapse

Instance Method Details

#add_affiliate(affiliate) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'app/models/concerns/affiliatable_parent.rb', line 14

def add_affiliate(affiliate)
  # add validation that we're not affiliating to self
  affiliation = Affiliation.new(parent: self, affiliate: affiliate, status: "accepted")
  if @@valid_affiliate_types.include?(affiliate.class.to_s.downcase.to_sym)
    affiliation.save
    affiliation
  else
    affiliation.errors.add :affiliate, ":#{affiliate.class.to_s.downcase} type invalid, must be one of #{@@valid_affiliate_types.inspect}"
    affiliation
  end
end

#remove_affiliate(affiliate) ⇒ Object



26
27
28
# File 'app/models/concerns/affiliatable_parent.rb', line 26

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