Wisper:订阅者没有听到广播

时间:2015-02-03 03:19:35

标签: ruby-on-rails publish-subscribe wisper

我在之前的一个问题中建议使用名为Wisper的宝石。我很高兴了解它,因为它正是我正在寻找的解决方案。我从Wisper的文档中无法理解的是听众如何注册自己。

这是我的代码:

应用程序/模型/ subscription.rb

class Subscription < ActiveRecord::Base
include Wisper::Publisher

  def some_method
    # some code here
    broadcast(:subscription_paused)
  end
end

应用程序/模型/ offer.rb

class Offer < ActiveRecord::Base
  def subscription_paused
    binding.pry # or whatever
  end
end

所以我不完全确定这部分。我尝试了各种订阅技巧,但我认为这只是归结于我并不真正理解它的这一方面:

配置/初始化/ wisper.rb

Wisper.subscribe(Offer.new)

我也尝试过,类似于Wiki中的例子:

subscription = Subscription.new
subscription.subscribe(Offer.new)

我在这里缺少什么? (我不确定上面的代码是否应该用于初始化程序。)

1 个答案:

答案 0 :(得分:3)

如果Offer和Subscription模型的表存在,则代码应该有效。

在rails控制台中尝试:

# class Subscription < ActiveRecord::Base
class Subscription
  include Wisper::Publisher

  def some_method
    # some code here
    broadcast(:subscription_paused)
  end
end

# class Offer < ActiveRecord::Base
class Offer
  def subscription_paused
    puts "jeijjj"
  end
end


Wisper.subscribe(Offer.new)

Subscription.new.some_method

它应该生成一个输出:

"jeijjj"