неинициализированная константа › 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>'

person Pardeep Dhingra    schedule 21.12.2015    source источник
comment
У меня возникает эта проблема, как только я пытаюсь смонтировать его с маршрутами 'mount ActionCable.server => '/cable'´   -  person MacTeo    schedule 21.12.2015
comment
@MacTeo Посмотрите на мой ответ ниже, он должен решить вашу проблему.   -  person Linus Oleander    schedule 12.01.2016


Ответы (5)


Ошибка связана с отсутствием правильных файлов 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
person Linus Oleander    schedule 12.01.2016
comment
Это тоже решило мою проблему. Я обновил проект 4.x.x до 5.x.x, чтобы использовать активный кабель, и это был один из элементов, отсутствующих при следовании ранним руководствам для нового проекта 5.x.x. - person tonyedwardspz; 16.02.2016

Если вы обновились с предыдущей версии (когда actioncable не было в комплекте), проверьте, содержит ли config/application.rb

require "action_cable/engine"
person CharlieSan    schedule 02.03.2018

У меня была та же проблема при попытке использовать ActionCable с Rails 4.2.5, и решение заключалось в том, чтобы добавить следующее в config/application.rb:

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

Это с жемчужиной ActionCable:

gem 'actioncable', github: 'rails/actioncable', branch: 'archive'
person pklinken    schedule 27.01.2016

Согласно видеоруководству DHH, опубликованному вчера, существует проблема между Spring и ActionCable зависимостью, поэтому до окончательного выпуска Rails 5 вам нужно будет воссоздать свой проект с опцией --skip-spring.

person Drenmi    schedule 21.12.2015
comment
Спасибо за ответ, но это не сработало. Та же ошибка. - person Pardeep Dhingra; 21.12.2015
comment
Просто проверка работоспособности: запускали ли вы bundle после удаления из Gemfile? :-) - person Drenmi; 21.12.2015
comment
Удаление Spring из gemfile не сработало, но да, после --skip-spring в новом приложении rails все работает нормально. - person Pardeep Dhingra; 22.12.2015
comment
Это неправильный ответ, так как весна не имеет ничего общего с этой проблемой. Ошибка возникает из-за отсутствия модуля ApplicationCable. Проблема пружины - это совершенно другая проблема, связанная с тем, что целлулоид не перезагружается (и, следовательно, не работает с пружиной). Причина, по которой --skip-spring работает над пустым проектом, заключается в том, что файлы, которые я предложил ниже, уже существуют. -1 - person Linus Oleander; 12.01.2016
comment
@PardeepDhingra Взгляните на мой ответ ниже, он должен решить вашу проблему. - person Linus Oleander; 12.01.2016

Я также решаю проблему с развертыванием Heroku, добавляя следующее:

require "action_cable/engine"

in config/application.rb

person aleksandr    schedule 18.02.2021