未初始化的常量> ActionCable :: Server :: Configuration :: ApplicationCable

问题描述:

当我运行服务器时,它的抛出错误显示在下面的日志中。我GOOGLE了很多,但没有理由背后。有人请说明一下。未初始化的常量> ActionCable :: Server :: Configuration :: ApplicationCable

的Gemfile

source 'https://rubygems.org' 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '>= 5.0.0.beta1', '< 5.1' 
# Use sqlite3 as the database for Active Record 
gem 'sqlite3' 

gem 'active_model_serializers', '~> 0.10.0.rc1' 

group :development, :test do 
    gem 'byebug' 
end 
gem 'puma' 
group :development do 
    gem 'spring' 
end 

日志:

/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/configuration.rb:15:in 
`initialize': uninitialized constant 
ActionCable::Server::Configuration::ApplicationCable (NameError) from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/base.rb:16:in `new' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/base.rb:16:in `block in <class:Base>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/activesupport-5.0.0.beta1/lib/active_support/core_ext/module/attribute_accessors.rb:72:in 
`block in mattr_reader'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/activesupport-5.0.0.beta1/lib/active_support/core_ext/module/attribute_accessors.rb:55:in 
`each' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/activesupport-5.0.0.beta1/lib/active_support/core_ext/module/attribute_accessors.rb:55:in 
`mattr_reader' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/activesupport-5.0.0.beta1/lib/active_support/core_ext/module/attribute_accessors.rb:208:in 
`mattr_accessor' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/base.rb:16:in `<class:Base>'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/base.rb:12:in `<module:Server>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/base.rb:7:in 
`<module:ActionCable>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/server/base.rb:6:in 
`<top (required)>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable.rb:43:in 
`server' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/actioncable-5.0.0.beta1/lib/action_cable/process/logging.rb:10:in 
`<top (required)>' from /home/pd/Documents/EventsApp/config.ru:7:in 
`block in <main>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/builder.rb:55:in 
`instance_eval'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/builder.rb:55:in 
`initialize' from /home/pd/Documents/EventsApp/config.ru:in `new' 
    from /home/pd/Documents/EventsApp/config.ru:in `<main>'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/builder.rb:49:in 
`eval' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/builder.rb:49:in 
`new_from_string' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/builder.rb:40:in 
`parse_file' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/server.rb:318:in 
`build_app_and_options_from_config'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/server.rb:218:in 
`app' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/server.rb:56:in 
`app' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/rack-2.0.0.alpha/lib/rack/server.rb:353:in 
`wrapped_app' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/server.rb:134:in 
`log_to_stdout'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/server.rb:74:in 
`start'  from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/commands_tasks.rb:90:in 
`block in server' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/commands_tasks.rb:85:in 
`tap' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/commands_tasks.rb:85:in 
`server' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands/commands_tasks.rb:49:in 
`run_command!' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/command.rb:20:in 
`run' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/railties-5.0.0.beta1/lib/rails/commands.rb:19:in 
`<top (required)>' from /home/pd/Documents/EventsApp/bin/rails:9:in 
`require' from /home/pd/Documents/EventsApp/bin/rails:9:in `<top 
(required)>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/lib/spring/client/rails.rb:28:in 
`load' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/lib/spring/client/rails.rb:28:in 
`call' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/lib/spring/client/command.rb:7:in 
`call' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/lib/spring/client.rb:28:in 
`run' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/bin/spring:51:in `<top 
(required)>' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/lib/spring/binstub.rb:11:in 
`load' from 
/home/pd/.rvm/gems/ruby-2.2.4/gems/spring-1.6.0/lib/spring/binstub.rb:11:in 
`<top (required)>' from /home/pd/Documents/EventsApp/bin/spring:13:in 
`require' from /home/pd/Documents/EventsApp/bin/spring:13:in `<top 
(required)>' from bin/rails:3:in `load' from bin/rails:3:in `<main>' 
+2

我尽快有这个问题,因为我尝试安装它与路线'mount ActionCable。服务器=>'/ cable'' – MacTeo

+1

@MacTeo看看我的答案,它应该解决你的问题。 – Oleander

错误与您的项目中没有正确的ActionCable文件有关。你需要app/channels/application_cable/channel.rb,看起来像这样

module ApplicationCable 
    class Channel < ActionCable::Channel::Base 
    end 
end 

app/channels/application_cable/connection.rb

module ApplicationCable 
    class Connection < ActionCable::Connection::Base 
    end 
end 
+0

这也解决了我的问题。我将4.x.x项目升级到5.x.x以使用操作电缆,这是在完成新的5.x.x项目早期教程时丢失的项目之一。 – tonyedwardspz

+0

我仍然有错误... – Bengala

DHH's video tutorial从昨天开始,有和ActionCable依赖Spring之间的问题,所以直到Rails的  5的最终版本,你需要使用--skip-spring选项重新创建项目。

+0

感谢您的回应,但没有奏效。同样的错误。 –

+0

只是一个理智的检查:你从Gemfile中删除它后运行'bundle'吗? :-) – Drenmi

+0

是的,我这样做.. –

我不得不尝试使用ActionCable使用Rails 4.2.5当同样的问题,解决的办法是添加以下配置/应用.RB:

config.autoload_paths += %W(#{config.root}/app/channels) 

这与ActionCable宝石:

gem 'actioncable', github: 'rails/actioncable', branch: 'archive' 
+1

这帮了我,谢谢! –

如果从以前的版本升级(当束actioncable不是),检查是否config/application.rb包含

require "action_cable/engine"