Module: Interestable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/interestable.rb
Instance Method Summary collapse
-
#update_interests(new_interest_ids) ⇒ Object
challenge, workgroup, project, user.
Instance Method Details
#update_interests(new_interest_ids) ⇒ Object
challenge, workgroup, project, user
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/models/concerns/interestable.rb', line 11 def update_interests(new_interest_ids) # no need to clean interests array as it's a fixed set of integers current_interest_ids = interests.pluck(:id) # Using set logic to get the new items ids_of_interests_to_add = new_interest_ids - current_interest_ids Interest.where(id: ids_of_interests_to_add).find_each do |interest| interests << interest add_edge(interest, 'has_interest') unless self.class.name == "PeerReview" end # Using set logic to get the items that don't exist anymore ids_of_interests_to_remove = current_interest_ids - new_interest_ids Interest.where(id: ids_of_interests_to_remove).find_each do |interest| interests.delete(interest) remove_edge(interest, 'has_interest') unless self.class.name == "PeerReview" end end |