我在之前的一个问题中建议使用名为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)
我在这里缺少什么? (我不确定上面的代码是否应该用于初始化程序。)
答案 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"