我实现的模型需要将其中一个字段转义/格式化为输入文本的html友好版本(为了争论,我们可以说这是一个蓝色/红色的stlye事物)。
我使用before_save回调在观察者中实现了这一点,所有工作,没有抱怨。我正在学习rails作为代码而且让我感到震惊的是,仅仅看模型就没有迹象表明它有一个观察者。
是否有一种巧妙的方式来指示(对于可能查看/编辑我的代码的其他程序员)模型有观察者,或者我应该在评论中(或根本不这样做)。
答案 0 :(得分:1)
据我所知,您不需要在目标类/模型上指定它有一个观察者,您需要做的就是确保观察者列出它正在观察的模型。
class ContentObserver < ActiveRecord::Observer
observe :answer, :audio_clip, :document
#This right here ^
def after_update(record)
record.recent_activity.save!
end
end
答案 1 :(得分:0)
为观察者提供spec / test文件。如果将来有人以一种扰乱观察者的方式改变模型,则规范/测试将失败,这将提醒他们。