3

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

这是我的代码:

应用程序/模型/订阅.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)

我在这里想念什么?(我不确定上面的代码是否应该放在初始化程序中。)

4

1 回答 1

4

如果提供和订阅模型的表存在,那么代码应该可以工作。

在 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"
于 2015-02-05T14:42:40.463 回答