diff options
author | Rhenium <rhenium@rhe.jp> | 2014-01-17 20:13:16 +0900 |
---|---|---|
committer | Rhenium <rhenium@rhe.jp> | 2014-01-17 20:13:16 +0900 |
commit | ad42e7d84080040ae026aa6e23044626e4f7404d (patch) | |
tree | 9b6dbbb60f7a32d090d6ed3682e29c02b3e18b65 /app/models/favorite.rb | |
parent | 570f0b703878a61fd8bbaeeade08bb2c9a766794 (diff) | |
download | aclog-ad42e7d84080040ae026aa6e23044626e4f7404d.tar.gz |
use INSERT IGNORE INTO ... when creating favorites/retweets
Diffstat (limited to 'app/models/favorite.rb')
-rw-r--r-- | app/models/favorite.rb | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/app/models/favorite.rb b/app/models/favorite.rb index 08ee580..7d0f1a1 100644 --- a/app/models/favorite.rb +++ b/app/models/favorite.rb @@ -14,13 +14,11 @@ class Favorite < ActiveRecord::Base transaction do t = Tweet.from_receiver(msg["target_object"]) u = User.from_receiver(msg["source"]) - f = t.favorites.create!(user: u) + f = t.favorites.new(user: u) + f.save_ignore! logger.debug("Created Favorite: #{msg["source"]["id"]} => #{msg["target_object"]["id"]}") return f end - rescue ActiveRecord::RecordNotUnique - logger.debug("Duplicate Favorite: #{msg["source"]["id"]} => #{msg["target_object"]["id"]}") - return nil rescue => e logger.error("Unknown error while inserting favorite: #{e.class}: #{e.message}/#{e.backtrace.join("\n")}") return nil |