Fix random `NoMethodError` errors on cached `CustomFilter` objects (#28521)

This commit is contained in:
Claire 2023-12-29 17:23:07 +01:00 committed by GitHub
parent 3599622b5b
commit fcfdeadc04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 3 deletions

View File

@ -17,8 +17,23 @@
class CustomFilter < ApplicationRecord class CustomFilter < ApplicationRecord
self.ignored_columns += %w(whole_word irreversible) self.ignored_columns += %w(whole_word irreversible)
alias_attribute :title, :phrase # NOTE: We previously used `alias_attribute` but this does not play nicely
alias_attribute :filter_action, :action # with cache
def title
phrase
end
def title=(value)
self.phrase = value
end
def filter_action
action
end
def filter_action=(value)
self.action = value
end
VALID_CONTEXTS = %w( VALID_CONTEXTS = %w(
home home

View File

@ -17,7 +17,15 @@ class CustomFilterKeyword < ApplicationRecord
validates :keyword, presence: true validates :keyword, presence: true
alias_attribute :phrase, :keyword # NOTE: We previously used `alias_attribute` but this does not play nicely
# with cache
def phrase
keyword
end
def phrase=(value)
self.keyword = value
end
before_save :prepare_cache_invalidation! before_save :prepare_cache_invalidation!
before_destroy :prepare_cache_invalidation! before_destroy :prepare_cache_invalidation!