PERF: Minor but we can just pass a hash to `where`.

```
Warming up --------------------------------------
          4 x .where     1.040k i/100ms
          1 x .where     1.677k i/100ms
Calculating -------------------------------------
          4 x .where     10.321k (± 5.2%) i/s -     52.000k in
5.053803s
          1 x .where     17.117k (± 3.8%) i/s -     85.527k in
5.004107s

Comparison:
          1 x .where:    17117.1 i/s
          4 x .where:    10321.3 i/s - 1.66x  slower
```
This commit is contained in:
Guo Xiang Tan 2018-05-28 16:41:38 +08:00
parent 9788ea9cb7
commit 754458e6a2
1 changed files with 11 additions and 7 deletions

View File

@ -59,18 +59,22 @@ class Notification < ActiveRecord::Base
def self.mark_posts_read(user, topic_id, post_numbers)
Notification
.where(user_id: user.id)
.where(topic_id: topic_id)
.where(post_number: post_numbers)
.where(read: false)
.where(
user_id: user.id,
topic_id: topic_id,
post_number: post_numbers,
read: false
)
.update_all(read: true)
end
def self.read(user, notification_ids)
Notification
.where(id: notification_ids)
.where(user_id: user.id)
.where(read: false)
.where(
id: notification_ids,
user_id: user.id,
read: false
)
.update_all(read: true)
end