我定期使用某個哈希標籤獲取最新的推文並將其保存在本地。爲了防止保存重複,我使用下面的方法。不幸的是,它似乎並沒有工作...所以什麼是錯,此代碼:保存前刪除數組中的重複項
def remove_duplicates
before = @tweets.size
@tweets.delete_if {|tweet| !((Tweet.all :conditions => { :twitter_id => tweet.twitter_id}).empty?) }
duplicates = before - @tweets.size
puts "#{duplicates} duplicates found"
end
哪裏@tweets是鳴叫對象的數組從Twitter獲取。我會很感激任何解決方案的作品,尤其是一個可能更優雅...
validate_uniqueness_of:twitter_id這不是一個好的解決方案。在檢查記錄的存在並創建新記錄之間,其他進程可能會創建重複記錄。您應始終將此方法與數據庫索引結合使用。 – 2009-07-10 19:24:59
@weppos:由於我只有一個順序工作寫推文,這不是問題。這似乎是最「幹」的解決方案。在sqlite3上工作得很好,但在生產模式/ mysql下,它似乎沒有注意到重複...現在正在查看它。 – effkay 2009-07-10 20:15:50