В Rails есть способ запустить несколько SQL-запросов в одном выражении, скажем что-то вроде:
UPDATE `dvd_actor` SET actor = replace(actor, 'Ó', 'Ó');
UPDATE `dvd_actor` SET actor = replace(actor, 'Á', CHAR(193));
UPDATE `dvd_actor` SET actor = replace(actor, 'É', CHAR(201));
UPDATE `dvd_actor` SET actor = replace(actor, 'Í', CHAR(205));
Все в одном запросе.
Это то, что я делаю в PHP для очистки базы данных, но Rails выдает мне ошибку после первой. Я предполагаю, что это не путь Rails, просто любопытно, каким будет лучший способ сделать это в Rails.
В настоящее время у меня есть:
self.connection.execute("UPDATE `dvd_actor` SET actor = replace(actor, 'Ó', 'Ó');
UPDATE `dvd_actor` SET actor = replace(actor, 'Á', CHAR(193));
..."
Edit:
Я должен объяснить, что я думаю, что запускать их с помощью gsub - это пустая трата ресурсов, когда обрабатывать их в SQL намного быстрее и эффективнее. Я имею в виду, зачем переводить их в цикл в API, если SQL может справиться с этим намного лучше?