我在之前的问题中被推荐使用名为 Wisper 的 gem。我很高兴了解它,因为它正是我正在寻找的解决方案。从 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)
我在这里错过了什么? (我不确定上面的代码是否应该放在初始化程序中。)
最佳答案
如果提供和订阅模型存在表,那么代码应该可以工作。
在 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"
关于ruby-on-rails - Wisper:订阅者听不到广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28290783/