Нет, такого способа нет. Причина, вероятно, в том, что каждое решение в любом случае должно было бы повторяться в какой-то момент, потому что должны быть вызваны все обратные вызовы для каждого объекта. Причина, по которой существует update_all, заключается в том, чтобы дать разработчикам возможность массово обновлять записи (более или менее) напрямую с помощью вызовов API mysql ... в некотором смысле, чтобы точно обойти любую функцию activerecord, такую как проверки и обратные вызовы.
Я надеюсь, что это удовлетворительный ответ для вас.