Class: C80Yax::StrsubcatObserver

Inherits:
ActiveRecord::Observer
  • Object
show all
Defined in:
app/models/c80_yax/strsubcat_observer.rb

Instance Method Summary collapse

Instance Method Details

#after_create(strsubcat) ⇒ Object

Админ создаёт подкатегорию:

 в базе должна создаться таблица вещей подкатегории типа str_111_items
  со столбцами - свойствами, присущ. подкатегории


7
8
9
10
11
# File 'app/models/c80_yax/strsubcat_observer.rb', line 7

def after_create(strsubcat)
  Rails.logger.debug "[TRACE] <StrsubcatObserver.after_create> Создана подкатегория #{strsubcat.id}."
  # byebug
  StrsubcatRuntimeTables.table_check_and_build(strsubcat)
end

#after_update(strsubcat) ⇒ Object

Админ обновляет подкатегорию:

• если были изменены свойства, присущ. подкатегории:
      • удаляем таблицу вещей подкатегории типа str_111_items
      • если свойства, присущ. подкатегории, были удалены - чистим от них таблицу item_props


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/models/c80_yax/strsubcat_observer.rb', line 17

def after_update(strsubcat)

  # TODO-0:: проверить, что таблица удаляется, затем создаётся и заполняется, когда добавляем свойства

  if strsubcat.prop_names_changed?
    Rails.logger.debug '[TRACE] <StrsubcatObserver.after_update> Удаляем таблицу, чистим item_props.'
    # byebug
    StrsubcatRuntimeTables.table_drop(strsubcat)
    StrsubcatRuntimeTables.check_and_clean_item_props(strsubcat)
  else
    Rails.logger.debug '[TRACE] <StrsubcatObserver.after_update> Просто обновилась...'
    # byebug
  end

  StrsubcatRuntimeTables.table_check_and_build(strsubcat)

  StrsubcatRuntimeTables.table_fill(strsubcat.id)

end

#before_destroy(strsubcat) ⇒ Object

Админ удаляет подкатегорию:

 удаляем таблицу вещей подкатегории типа str_111_items


39
40
41
42
43
# File 'app/models/c80_yax/strsubcat_observer.rb', line 39

def before_destroy(strsubcat)
  Rails.logger.debug "[TRACE] <StrsubcatObserver.before_destroy> Удалена подкатегория #{strsubcat.id}."
  # byebug
  StrsubcatRuntimeTables.table_drop(strsubcat) # 1)
end