- Вы модифицируете тот же объект (уже упоминался).
- Атрибуту
feed
не присвоено ничего нового. Вы изменяете возвращаемое значение вместо .
Все это создает впечатление, что вы переворачиваете строки. Забавно, результат на самом деле. : -)
Попробуйте вместо этого:
def self.up
add_column :locations, :old_feed, :string
Location.all.each do |l|
l.old_feed = l.feed
# Reassign the new feed and drop the ! from sub!() to return a new string.
l.feed = l.feed.sub(/^.*?(\d+)\.xml$/,
'http://newsrss.bbc.co.uk/weather/forecast/\1/Next3DaysRSS.xml')
l.save!
end
end