2016-10-31 2 views
0

Я только что обновил свое приложение до Rails 5, я следую руководству по основам ActionCable, но я не могу запустить сервер.Rails 5 - Не удается инициализировать ActionCable

Everytime я пытаюсь сделать так, я получаю следующее сообщение об ошибке:

uninitialized constant ActionCable (NameError)

Похоже, что это происходит из моего routes.rb файла из строки:

mount ActionCable.server => '/cable'

Этот строка указана в каждом учебнике, которое я прочитал до сих пор, поэтому я предполагаю, что для Actioncable требуется работать. Кто-нибудь сталкивался с этой проблемой раньше? Мой gemfile обновлен, я использую рельсы 5.0.0.1

+0

Учитывая, что ваш Gemfile имеет Rails5, он должен работать - вы получите ту же ошибку, если вы запускаете сервер через Bundler (например, 'расслоение Exec рельсы s')? – gmcnaughton

+0

@gmcnaughton yes, точно такая же ошибка –

ответ

0

Ответ на вопрос: this ответьте, убедитесь, что вы выполнили следующий путь к файлу. Вам нужно 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

Нет, оба файла выглядят так. –

0

Если вы уверены, что вы объявляете файлы канала и подключения в правильном месте, то убедитесь, что вы загружаете ActionCable в config/application.rb.

Вы можете иметь что-то вроде следующего в этом файле:

require "active_model/railtie" 
require "active_job/railtie" 
require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
# require "sprockets/railtie" 
# require "rails/test_unit/railtie" 

В этом случае вам просто нужно добавить require "action_cable/engine".

Или, если хотите, вы можете использовать require "rails/all" для загрузки всех фреймворков как один раз. Rails Initialization Process guide имеет более подробную информацию об этом.

rails/all нагрузки следующее:

active_record/railtie 
    action_controller/railtie 
    action_view/railtie 
    action_mailer/railtie 
    active_job/railtie 
    action_cable/engine 
    rails/test_unit/railtie 
    sprockets/railtie 
Смежные вопросы