我有一个Photo对象和一个Activity观察者。假消灭行动?
活动基本上只是网站上最近活动的列表(上传照片,发表评论等)。
现在我在活动观察者中有一个before_destroy
方法,这样当一个对象(如照片)被销毁时,它将从最近的活动列表中删除活动。
但我需要做的是有点假照片的销毁行动。
当有人“删除”他们的照片时,我们实际上并不销毁数据库中的记录,我们只是将其标记为不活动。
但是由于我使用的是观察者,当用户触发Photo.destroy
方法时,如何在Activity观察者中仍然可以触发该方法before_destroy
?
下面是两个照片对象和观察者的基本代码...
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
您能否包含一些基本的代码片段来说明问题? (我在某种程度上理解了这个问题,并希望看到答案。) – DavB 2012-03-15 12:33:24
@DavB当然。发布更新。 – Shpigford 2012-03-15 13:40:50