使用AWS Elastic Beanstalk部署Rails ActionCable

我正在尝试在AWS Elastic Beanstalk上部署来自DHH的聊天演示。 我已经按照这里的教程: https : //keithpblog.wordpress.com/2015/12/30/rails-5-tutorial-chat-app-can-we-deploy-it我设法得到了解决方案部署在单个实例中,Redis也启动并运行。 但是当我尝试发布某些内容时,消息将保存在数据库中,但不会被WebSocket返回。 我检查了production.log,我看到这个错误信息:

E,[2016-05-20T20:33:52.676577#24281]错误 – :有一个exception – Gem :: LoadError(为Action Cable pubsub适配器指定’redis’,但没有加载gem 'redis' 。添加gem 'redis'到您的Gemfile(并确保其版本达到Action Cable所需的最低版本)。)

E,[2016-05-20T20:33:52.676826#24281]错误 – :/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.rc1/ lib / action_cable / server / configuration.rb:37:在`pubsub_adapter中的救援’

/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.rc1/lib/action_cable/server/configuration.rb:34:in`pubsub_adapter’

我也有我的Gemfile:gem’redis’,’〜> 3.2′

有任何想法吗? 谢谢!

我通过添加到我的Gemfile修复了错误:

 gem 'em-hiredis' gem 'redis' 

我必须做的另一个改变是/environments/production.rb

 config.action_cable.url = 'ws://url.com/cable' config.action_cable.allowed_request_origins = ['http://url.com'] 

有了这个,我就可以在Elastic Beanstalk上运行并运行