Я пытаюсь сохранить изменения в базе данных через задачу rake.
В моей задаче rake я делаю что-то вроде:
namespace :parts do
desc "Update Parts table, swap names in title"
task :swap => :environment do
Part.swap
end
end
В моем классе Part я делаю
def self.swap
Part.all.each do |part|
if (part.title =~ REGEX) == 0
part.title.gsub! REGEX, '\2 \1'
puts part.title
part.save!
end
end
end
Однако это не сохраняет часть. Команда save!
возвращает true. puts part.title
возвращает нужное мне значение.
Если я вызываю
Part.update(part.id, title: part.title)
База данных обновляется правильно. Почему так происходит? Я делаю что-то не так в моем цикле? Я работаю с Rails 3.1.3, Rake 0.9.2.2 и MySQL2 0.3.7