Rails:表示模型有观察者

时间:2012-02-22 19:42:16

标签: ruby-on-rails observer-pattern

我实现的模型需要将其中一个字段转义/格式化为输入文本的html友好版本(为了争论,我们可以说这是一个蓝色/红色的stlye事物)。

我使用before_save回调在观察者中实现了这一点,所有工作,没有抱怨。我正在学习rails作为代码而且让我感到震惊的是,仅仅看模型就没有迹象表明它有一个观察者。

是否有一种巧妙的方式来指示(对于可能查看/编辑我的代码的其他程序员)模型有观察者,或者我应该在评论中(或根本不这样做)。

2 个答案:

答案 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文件。如果将来有人以一种扰乱观察者的方式改变模型,则规范/测试将失败,这将提醒他们。