Sha256: 58bed0894dae3114781a557bd174302392ac463dfe4a21e254f1fb03fb9347f5

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

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

    # Админ создаёт вещь:
    #   • в таблице типа str_111_items должна появиться строка, описывающая эту вещь
    def after_create(item)
      Rails.logger.debug "[TRACE] <ItemObserver.after_create> Создан предмет '#{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

1 entries across 1 versions & 1 rubygems

Version Path
c80_yax-0.1.0.2 app/models/c80_yax/item_observer.rb