1
0
mirror of https://github.com/mastodon/mastodon synced 2024-11-30 15:58:14 +09:00

Use hash arguments to group when possible (#32916)

This commit is contained in:
Matt Jankowski 2024-11-19 05:36:02 -05:00 committed by GitHub
parent 2b5faa2ba3
commit 37f00fb018
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 6 additions and 6 deletions

View File

@ -17,6 +17,6 @@ class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
private private
def most_reblogged_accounts def most_reblogged_accounts
report_statuses.where.not(reblog_of_id: nil).joins(reblog: :account).group('accounts.id').having('count(*) > 1').order(count_all: :desc).limit(SET_SIZE).count report_statuses.where.not(reblog_of_id: nil).joins(reblog: :account).group(accounts: [:id]).having('count(*) > 1').order(count_all: :desc).limit(SET_SIZE).count
end end
end end

View File

@ -17,6 +17,6 @@ class AnnualReport::MostUsedApps < AnnualReport::Source
private private
def most_used_apps def most_used_apps
report_statuses.joins(:application).group('oauth_applications.name').order(count_all: :desc).limit(SET_SIZE).count report_statuses.joins(:application).group(oauth_applications: [:name]).order(count_all: :desc).limit(SET_SIZE).count
end end
end end

View File

@ -61,7 +61,7 @@ class AccountFilter
when 'email' when 'email'
accounts_with_users.merge(User.matches_email(value.to_s.strip)) accounts_with_users.merge(User.matches_email(value.to_s.strip))
when 'ip' when 'ip'
valid_ip?(value) ? accounts_with_users.merge(User.matches_ip(value).group('users.id, accounts.id')) : Account.none valid_ip?(value) ? accounts_with_users.merge(User.matches_ip(value).group(users: [:id], accounts: [:id])) : Account.none
when 'invited_by' when 'invited_by'
invited_by_scope(value) invited_by_scope(value)
when 'order' when 'order'

View File

@ -29,8 +29,8 @@ class Poll < ApplicationRecord
has_many :votes, class_name: 'PollVote', inverse_of: :poll, dependent: :delete_all has_many :votes, class_name: 'PollVote', inverse_of: :poll, dependent: :delete_all
with_options class_name: 'Account', source: :account, through: :votes do with_options class_name: 'Account', source: :account, through: :votes do
has_many :voters, -> { group('accounts.id') } has_many :voters, -> { group(accounts: [:id]) }
has_many :local_voters, -> { group('accounts.id').merge(Account.local) } has_many :local_voters, -> { group(accounts: [:id]).merge(Account.local) }
end end
has_many :notifications, as: :activity, dependent: :destroy has_many :notifications, as: :activity, dependent: :destroy

View File

@ -125,7 +125,7 @@ class User < ApplicationRecord
scope :signed_in_recently, -> { where(current_sign_in_at: ACTIVE_DURATION.ago..) } scope :signed_in_recently, -> { where(current_sign_in_at: ACTIVE_DURATION.ago..) }
scope :not_signed_in_recently, -> { where(current_sign_in_at: ...ACTIVE_DURATION.ago) } scope :not_signed_in_recently, -> { where(current_sign_in_at: ...ACTIVE_DURATION.ago) }
scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) } scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) }
scope :matches_ip, ->(value) { left_joins(:ips).merge(IpBlock.contained_by(value)).group('users.id') } scope :matches_ip, ->(value) { left_joins(:ips).merge(IpBlock.contained_by(value)).group(users: [:id]) }
before_validation :sanitize_role before_validation :sanitize_role
before_create :set_approved before_create :set_approved