Simplify `AccountSummary.filtered` query generation (#28868)

th-new
Matt Jankowski 2024-01-24 04:57:32 -05:00 committed by GitHub
parent 5b1eb09d54
commit 599bc69503
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 3 additions and 1 deletions

View File

@ -12,9 +12,11 @@
class AccountSummary < ApplicationRecord class AccountSummary < ApplicationRecord
self.primary_key = :account_id self.primary_key = :account_id
has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false
scope :safe, -> { where(sensitive: false) } scope :safe, -> { where(sensitive: false) }
scope :localized, ->(locale) { where(language: locale) } scope :localized, ->(locale) { where(language: locale) }
scope :filtered, -> { joins(arel_table.join(FollowRecommendationSuppression.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:account_id].eq(FollowRecommendationSuppression.arel_table[:account_id])).join_sources).where(FollowRecommendationSuppression.arel_table[:id].eq(nil)) } scope :filtered, -> { where.missing(:follow_recommendation_suppressions) }
def self.refresh def self.refresh
Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false) Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false)