2014-01-15 21 views
0

使用軌道控制檯:節省了DB模式在軌控制檯,而循環

我試圖提取數據的調用一個循環「URL」列中,URL字符串中更改子。然後我要救它放回DB爲好,這裏是簡單的代碼:

a = Advertiser.where(:name => 'Groupon').first 
feeds = Feed.where(:advertiser_id => a.id).all.each { |f| f.url.sub('100', "400"); f.save! } 

我不知道爲什麼這樣做上面的鐵軌控制檯進行。我去查詢數據庫,並且沒有任何我希望更改的值已被修改。當我運行上述內容時,它會顯示數據庫中每條記錄的一堆值,但不會顯示修改的值。

我在做什麼錯? (預先感謝你)

回答

0

在軌道有sub和sub!之間的巨大差異。子工作在字符串上,並返回'subed'字符串,但實際上並沒有改變原始字符串,sub!改變原來的字符串。所以你應該使用第二個版本,sub!爲了讓你的對象改變!

'全部'也是沒有必要的,每個已經循環通過您的對象

+0

謝謝,這是有道理的,今晚晚些時候會嘗試。 –