10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'app/models/concerns/skillable.rb', line 10
def update_skills(new_skills)
new_skills = clean_array(new_skills)
old_skills = skills.collect(&:skill_name)
skills_to_add = new_skills - old_skills
unless skills_to_add.empty?
skills_to_add.each do |skill_name|
skill = Skill.find_or_create_by!(skill_name: skill_name)
skills << skill
add_edge(skill, 'has_skill') unless self.class.name == "PeerReview"
end
end
skills_to_remove = old_skills - new_skills
unless skills_to_remove.empty?
skills_to_remove.each do |skill_name|
skill = Skill.find_by(skill_name: skill_name)
skills.delete(skill)
remove_edge(skill, 'has_skill') unless self.class.name == "PeerReview"
end
end
end
|