Guest User

Untitled

a guest
Aug 15th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. class Notification < ActiveRecord::Base
  2. has_and_belongs_to_many :users
  3.  
  4. def user_ids=(ids)
  5. # Удаляем все старые связи
  6. self.users.clear
  7.  
  8. # Если есть новые связи, то добавляем их
  9. if ids.size > 0
  10. rows = [:notification_id, :user_id]
  11. data = []
  12.  
  13. ids.each { |u_id| data << [id, u_id] }
  14.  
  15. # Вся магия кроется в методе import.
  16. # В результате это будет один SQL-запрос, который выполнится в разы быстрее,
  17. # чем тот забор, который городит ActiveRecord.
  18. NotificationsUser.import rows, data
  19. end
  20. end
  21. end
Add Comment
Please, Sign In to add comment