Guest User

Untitled

a guest
Jan 18th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. user_id_tp = tutor_profiles.index_by(&:user_id)
  2. tutor_subjects = TutorSubject
  3. .where(tutor_id: user_id_tp.keys)
  4. .group_by(&:tutor_id)
  5. .to_h { |uid, subjects| [user_id_tp[uid], subjects.map(&:subject_id)] }
  6.  
  7. # Faster
  8.  
  9. user_id_tp = tutor_profiles.index_by(&:user_id)
  10. hash_of_arrays = Hash.new { |h,k| [] }
  11. tutor_subjects = TutorSubject
  12. .where(tutor_id: user_id_tp.keys)
  13. .each_with_object(hash_of_arrays) do |subject, subjects|
  14. subjects[subject.tutor_id].push(subject.id)
  15. end
  16.  
  17. # Fastest
  18.  
  19. user_id_tp = tutor_profiles.index_by(&:user_id)
  20. tutor_subjects = TutorSubject
  21. .where(tutor_id: user_id_tp.keys)
  22. .pluck('tutor_id', 'subject_id')
  23. .each_with_object(hash_of_arrays) { |(tid, sid), subjects| h[tid] << sid }
Add Comment
Please, Sign In to add comment