实时触发Rails的骨干事件

man*_*sim 2 javascript ruby-on-rails backbone.js

我正在使用RoR,Backbone,并且我使用sidekiq有一个服务器端功能,所以我的Redis数据库实时更新.当sidekiq更改数据库属性时,我需要触发我的主干事件.Sidekiq函数位于app/assets/workers目录中.基本上我需要来自Rails /app/assets/workers/worker.rb我可以在app/assets/javascripts/backbone/models/monster.js.coffee实时触发我的Backbone集合.当sidekiq实时更新数据库中的属性时,对于Backbone,一切都是静默的,我的集合不会实时更改.如果我刷新页面,它会更新.如何实时触发Rails应用程序的Backbone事件?我是否需要使用另一个框架或者仅仅在rails中使用它?

Bar*_*cha 7

Rails不提供此功能,因此您需要自定义解决方案.我建议看看Faye,一个通过Faye gem轻松与Rails集成的发布/订阅消息系统.

要完成您想要的任务,您需要根据文档设置Faye服务器.在浏览器中,您需要按照此处所述创建客户端.使用浏览器客户端,您可以订阅和收听频道上的消息.在后端,当您的Sidekiq工作人员完成并更新相关数据时,您可以在Faye频道上发布消息.在浏览器客户端收到消息后,您可以随意执行任何操作,包括在Backbone集合上触发事件.希望这可以帮助.