我可以在控制器中使用以下代码,但不能在控制台中使用(都是开发环境).我使用的是Rails 5.0.0.beta2.

ActionCable.server.broadcast 'example_channel', message: '<p>Test</p>'

控制台:

>> ActionCable.server.broadcast 'example_channel', message: '<p>Test</p>'
[ActionCable] Broadcasting to example_channel: {:message=>"<p>Test</p>"}
=> []

如何在控制台中使用它?

推荐答案

ActionCable在开发模式下的默认行为是使用async适配器,它只在同一进程中运行.对于进程间广播,需要切换到redis适配器.

要在开发模式下启用redis,您需要编辑config/cable.yml:

redis: &redis
  adapter: redis
  url: redis://localhost:6379/1

production: *redis
development: *redis
test: *redis

Ruby-on-rails相关问答推荐

Rails7--如何使用内联代码仅为操作运行BEFORE操作

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

引用连接 Rails 表中枚举的查询

Rails 创建自定义函数/方法以及存储位置

select2 未应用于所有下拉列表;它只适用于数据的最后一条记录

我真正运行的是哪个 Ruby 版本?

在哈姆尔与当地人进行局部渲染?

Rails 模型:您将如何创建一组预定义的属性?

Rails:设计:按角色登录后重定向

Ruby on Rails:有条件地显示部分

Ruby on Rails 错误无法加载此类文件 - 更少

Ruby gem 命名约定

在具有唯一约束的关联中使用 Rails 中的 factory_girl.得到重复的错误

在 Ruby on Rails 中循环对象属性

rails active admin 部署:找不到文件'jquery-ui'

如何覆盖:在 has_many 中定义的顺序

设计:为什么我的注销链接不起作用?

如何在 Rails 表单中将复选框和标签保持在同一行?

Ruby 中的类别名

为什么 Rails 需要 JavaScript 运行时?