Sha256: 816c203406b9a5cff9601761ad41077333bebdd9713c3cc40f16312fe2cb9668

Contents?: true

Size: 1.42 KB

Versions: 22

Compression:

Stored size: 1.42 KB

Contents

module C80Yax
  # noinspection RubyResolve
  class ItemObserver < ActiveRecord::Observer

    # Админ создаёт вещь:
    #   • в таблице типа str_111_items должна появиться строка, описывающая эту вещь
    def after_commit(item)
      Rails.logger.debug "[TRACE] <ItemObserver.after_commit> Создан предмет '#{item.title}'."
      StrsubcatRuntimeTables.table_check_and_build(item.strsubcat)
      StrsubcatRuntimeTables.table_fill(item.strsubcat.id) # TODO-5:: оптимизировать: не надо совершать операцию "заполнить таблицу", надо совершить операцию "вставлять в таблицу строку"
    end

    # Админ обновляет вещь:
    #
    def after_update(item)
      Rails.logger.debug "[TRACE] <ItemObserver.after_update> item.title = #{item.title}"
      StrsubcatRuntimeTables.item_update(item.strsubcat.id,item.id)
    end

    # Админ удаляет вещь:
    # • (средствами рельсы) из таблицы item_props должны исчезнуть свойства этой вещи
    # • из таблицы типа str_111_items должна исчезнуть строка, описывающая эту вещь
    def after_destroy(item)
      StrsubcatRuntimeTables.item_drop(item.strsubcat.id, item.id)
    end


  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
c80_yax-0.1.0.4 app/models/c80_yax/item_observer.rb
c80_yax-0.1.0.3 app/models/c80_yax/item_observer.rb