Rails обновление нескольких записей в одном запросе?

Здравствуйте. Есть уведомления для пользователей на сайте. У уведомлений поле "прочитано". Если пользователь долго не заходит в уведомления, то они там скапливаются и при открытии страницы скрипт по одной выставляет поле в true. Даже порядка 50 записей обрабатываются ощутимо заметно. Т.е. происходит порядка 50 UPDATE запросов к базе. Есть ли возможность массово применить атрибут?
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Если есть возможность, используй условное обновление записей одним запросом:
user.posts.where(visited: false).update_all(visited: true)
ActiveRecord update_all

Если нет такой возможности и записи нужно обработать поочерёдно каждую, то используй Active Record Transactions
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы