Tag: 观察者模式

在Rails中实现通知

在我的应用程序中,我想在评论或post中提及他/她时通知用户。 用户句柄是@user_name ,类似于Facebook 。 提及的数据库表如下所示: Mention mentioned_by: user_id (foreign key) user_mentioned: user_id (foreign key) comment_id: (foreign key) post_id: (foreign key) 我无法想出实现它的方法。 Facebook / Twitter如何做到这一点? 我决定使用的是使用ActiveRecord callbacks/ Observer design pattern ,每当新的评论/post保存到数据库时,我都可以浏览post/评论的内容,并留意任何提及,然后执行通知按要求。 我觉得有一些缺失的部分,我没有把它弄好。 这是最好的方式吗?

Rails 3 Observer – 希望学习如何为多个模型实现Observer

我想添加一个Auditor Observer,它可以随时为3个模型(书籍,角色,作者)创建一个动作… 我最近听说过Observerfunction,但找不到有关该function的任何文档。 它是否支持Rails 3? 如何为3个模型创建一个after_create的Auditor Observer? 谢谢

在引擎中使用观察者

我创建了一个基本上用于我们所有项目的引擎。 现在我要做的是为此Engine中的所有模型添加一个before_create回调。 经过一番搜索,我发现观察者是可行的方法。 所以,我创建了这个观察者: # app/models/baco/auth/auth_observer class Baco::Auth::AuthObserver < ActiveRecord::Observer def before_create( record ) p record end end 现在我需要将它添加到应用程序中,但当然在我的引擎中没有application.rb这样的文件,所以我把它放在我的引擎中: # lib/baco/auth/engine.rb require ‘rails’ require ‘devise’ module Baco module Auth class Engine < Rails::Engine engine_name 'baco_auth' config.active_record.observers = :auth_observer end end end 但是在启动服务器时出现以下错误: …/.rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.2.1/lib/active_support/inflector/methods.rb:229:in `block in constantize’: uninitialized constant AuthObserver (NameError)

为我的Rails应用程序实现Observer模式

我目前正在使用rails 3.0.7和ruby 1.9.2并制作一个rails App,其中包含一个由FlowPlayer渲染时从数据库加载的video。 以及基于video的一组幻灯片。 现在,我想将幻灯片与video同步。 对于时间安排,我要求用户输入每张幻灯片的时间。 所以,我想知道我是否可以使用观察者模式来制作一个中心时间作为主题,video和幻灯片作为观察者? 虽然这个概念在通过网上的一些教程后似乎是正确的,但我无法继续或想出编码的想法。 任何帮助将不胜感激。

Ruby:在事件触发器中自动包装方法

inheritance人我拥有/想要的东西: module Observable def observers; @observers; end def trigger(event, *args) good = true return good unless (@observers ||= {})[event] @obersvers[event].each { |e| good = false and break unless e.call(self, args) } good end def on(event, &block) @obersvers ||= {} @obersvers[event] ||= [] @observers[event] << block end end class Item < Thing include Observable def pickup(pickuper) […]