Eliminate unnecessary queries and query clauses with none and all

This commit is contained in:
Brad Urani 2017-04-05 06:02:58 +00:00
parent ccb6a658fd
commit 6a1da87cd3

View File

@ -161,9 +161,9 @@ class Status < ApplicationRecord
return where.not(visibility: [:private, :direct]) if account.nil?
if target_account.blocking?(account) # get rid of blocked peeps
where('1 = 0')
none
elsif account.id == target_account.id # author can see own stuff
where('1 = 1')
all
elsif account.following?(target_account) # followers can see followers-only stuff, but also things they are mentioned in
joins('LEFT OUTER JOIN mentions ON statuses.id = mentions.status_id AND mentions.account_id = ' + account.id.to_s)
.where('statuses.visibility != ? OR mentions.id IS NOT NULL', Status.visibilities[:direct])