У меня есть объект Photo и обозреватель Activity.
Действия - это просто список недавних действий на сайте (загружены фотографии, комментарии и т. Д.).
Прямо сейчас у меня есть метод before_destroy
в обозревателе Activity, так что когда объект (например, фотография) будет уничтожен, он удалит действие из списка недавних действий.
Но мне нужно подделать действие уничтожения фотографии.
На самом деле мы не уничтожаем запись в базе данных, когда кто-то «удаляет» их фотографию, мы просто помечаем ее как неактивную.
Но так как я использую наблюдателей, как я могу по-прежнему запускать этот метод before_destroy
в обозревателе Activity, когда пользователь запускает метод Photo.destroy
?
Вот базовый код как для объекта Photo, так и для наблюдателя ...
class PhotosController < ApplicationController
def destroy
@photo.update_attribute(:active, false)
end
end
class ActivitySourceObserver < ActiveRecord::Observer
observe :photo
def before_destroy(activity_source)
Activity.destroy_all(:activity_source_id => activity_source.id)
end
end