Class: Alchemy::InvalidateElementsCacheJob

Inherits:
BaseJob
  • Object
show all
Defined in:
app/jobs/alchemy/invalidate_elements_cache_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(related_object_type, related_object_id) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/jobs/alchemy/invalidate_elements_cache_job.rb', line 5

def perform(related_object_type, related_object_id)
  element_ids = Ingredient
    .where(related_object_type:, related_object_id:)
    .joins(:element)
    .pluck(:element_id)
  elements = Element.where(id: element_ids)

  all_element_ids = get_all_element_ids(elements, element_ids)
  Element.where(id: all_element_ids).touch_all

  page_ids = elements.joins(page_version: :page).select("DISTINCT alchemy_pages.id")
  Page.where(id: page_ids).touch_all
end