Ruby on rails Rails:表示模型具有观察者

Ruby on rails Rails:表示模型具有观察者,ruby-on-rails,observer-pattern,Ruby On Rails,Observer Pattern,我实现的模型需要将其中一个字段转义/格式化为输入文本的html友好版本(为了便于讨论,假设它是蓝色/红色的stlye) 我在一个带有before_save回调的观察器中实现了这一点,所有功能都正常,没有任何抱怨。我在编写代码时正在学习rails,这让我感到,仅仅看一下模型,并没有迹象表明它有一个观察者 是否有一种简洁的方式(对于可能查看/编辑我的代码的其他程序员)表明模型有一个观察者,或者我应该在注释中这样做(或者根本不这样做)。据我所知,您不需要在目标类/模型上指定它有一个观察者,只需确保观察

我实现的模型需要将其中一个字段转义/格式化为输入文本的html友好版本(为了便于讨论,假设它是蓝色/红色的stlye)

我在一个带有before_save回调的观察器中实现了这一点,所有功能都正常,没有任何抱怨。我在编写代码时正在学习rails,这让我感到,仅仅看一下模型,并没有迹象表明它有一个观察者


是否有一种简洁的方式(对于可能查看/编辑我的代码的其他程序员)表明模型有一个观察者,或者我应该在注释中这样做(或者根本不这样做)。

据我所知,您不需要在目标类/模型上指定它有一个观察者,只需确保观察者列出了它正在观察的模型

class ContentObserver < ActiveRecord::Observer
  observe :answer, :audio_clip, :document
  #This right here ^

  def after_update(record)
    record.recent_activity.save!
  end
end
class ContentObserver
为观察员准备一份规格/测试文件。如果将来有人以一种令观察者不安的方式更改模型,那么规范/测试将失败,这将提醒他们。

感谢您的回复,但情况恰恰相反。我推测,在这里使用您的代码,您可以让一个观察者对多个模型/不可推断模型进行回调。从模型的角度来看,我在想,没有办法(从你的例子中)意识到答案模型会仅仅通过查看答案模型代码来触发这个回调,我想知道是否有办法。我想我只是想在代码中添加一条注释。