Допустим, у меня есть 15 идентификаторов пользователей в массиве с именем user_ids
.
Если я хочу, скажем, изменить все их имена на "Боб", я мог бы сделать:
users = User.find(user_ids)
users.update_all( :name => 'Bob' )
Это не вызывает обратные вызовы, хотя.Если мне нужно вызвать обратные вызовы при сохранении этих записей, насколько мне известно, единственный способ - использовать:
users = User.find(user_ids)
users.each do |u|
u.name = 'Bob'
u.save
end
Однако это потенциально означает очень долгое выполнение задачи в действии контроллера.
Итак, мой вопрос заключается в том, есть ли другой способ лучше / выше производительность / railsier для запуска пакетного обновления набора записей, которые вызывает обратные вызовы на записи?