【问题标题】:Implementing Observer Pattern for my Rails App为我的 Rails 应用程序实现观察者模式
【发布时间】:2011-09-17 18:19:34
【问题描述】:

我目前正在使用 rails 3.0.7 和 ruby​​ 1.9.2 并制作一个 rails 应用程序,其中包含从数据库加载的视频,同时由 FlowPlayer 渲染。和一组基于视频的幻灯片。现在,我想将幻灯片与视频同步。对于时间,我要求用户输入每张幻灯片的时间。所以,我想知道我是否可以通过将一种中心时间作为主题,将视频和幻灯片作为观察者来使用观察者模式?

虽然在网上浏览了许多教程后,这个概念似乎是正确的,但我无法继续或获得关于编码的想法。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby ruby-on-rails-3 observer-pattern event-listener


    【解决方案1】:

    基本上,您有两种选择:

    使用 ActiveRecord 的回调(before_save、after_save 等)或创建观察者

    # app/observers/some_model_observer.rb
    class SomeModelObserver < ActiveRecord::Observer
      observe :your_model # the model you're observing
    
      def after_create(record)
      end
    
      # other ActiveRecord callbacks
    end
    

    【讨论】:

    • 您好 Andrea。感谢您的提示。基本上从您的回答中,我知道我必须使用观察: 将我的视频和幻灯片模型分别链接到观察者文件中。现在,为了使它们同步,我认为每一秒都应该作为一个事件触发,并且根据时间,幻灯片发生变化,视频向前移动。我如何将时间和这些观察者联系起来。谢谢您的帮助。对不起,如果我的问题听起来很愚蠢。在这方面我还是个菜鸟。
    • 嗨 Saagar,观察者基本上是针对与模型相关的事件。我认为您应该使用一些 javascript 进行计时和同步(阅读:在此特定上下文中不涉及 ruby​​ 或 rails)
    • 嗨,安德里亚。感谢您清除它!那么这是否意味着,要实现我想要的,我必须完全使用 javascript 并且不涉及观察者?你能详细说明一下与模型相关的事件吗?
    • 对于模型事件,请查看此文档:api.rubyonrails.org/classes/ActiveRecord/Observer.html ;)
    • 很好!谢谢...你认为 wud 能让我实现我想要的吗?感谢您抽出时间和耐心!
    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    相关资源
    最近更新 更多