В рельсах с кабелем действия. Класс подписки не найден "AsdfChannel". (Но это канал из старого проекта!) - PullRequest
0 голосов
/ 21 апреля 2019

Когда я делаю свежую программу

~/myrubythings$ rails new channeltest3 
....

~/myrubythings$ cd channeltest3

~/myrubythings/channeltest3$ rails generate channel cvbnm
Running via Spring preloader in process 2837
      create  app/channels/cvbnm_channel.rb
   identical  app/assets/javascripts/cable.js
      create  app/assets/javascripts/channels/cvbnm.coffee
~/myrubythings/channeltest3$ rails s
=> Booting Puma
=> Rails 5.2.3 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.5.0-p0), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Started GET "/cable" for 127.0.0.1 at 2019-04-21 02:15:56 +0100
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2019-04-21 02:15:56 +0100
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
Subscription class not found: "AsdfChannel"
^C- Gracefully stopping, waiting for requests to finish
=== puma shutdown: 2019-04-21 02:16:00 +0100 ===
- Goodbye!
Exiting

Обратите внимание, я получаю это сообщение Subscription class not found: "AsdfChannel"

~/myrubythings/channeltest3$ grep -irl asdf ./
.//log/development.log
~/myrubythings/channeltest3$ 

~/myrubythings/channeltest3$ grep -i asdf log/development.log 
Subscription class not found: "AsdfChannel"
~/myrubythings/channeltest3$ 

Единственный файл в этом новом проекте, который даже упоминает AsdfChannel - это журналфайл сервера!

Он выбирает канал из проекта, над которым я работал ранее (channtest2)

~/myrubythings/channtest2$ grep -irl AsdfChannel ./
.//app/assets/javascripts/channels/asdf.coffee
.//app/channels/asdf_channel.rb
....

Но в моем текущем проекте (channeltest3) нет упоминания об AsdfChannelили asdf_channel.rb

Я проверил Класс подписки не найден 'MyChannel' в ActionCable и упоминается, что он проверяет, находится ли файл rb канала в app / channel (как и должно быть), ине подкаталог этого.И это в приложении / каналах.

~/myrubythings/channeltest3$ ls app/channels/
application_cable   cvbnm_channel.rb
~/myrubythings/channeltest3$ 

Почему в журнале моего сервера даже упоминается канал из предыдущего проекта.Должно ли это быть?И как мне правильно отключить канал из моего предыдущего проекта, чтобы мой новый проект не упомянул об этом?

Кстати, это не мешает мне вещать с сервера на клиента (с каналамоего текущего проекта, когда я добавляю код для этого), но то сообщение, которое я получаю, все еще кажется мне странной ошибкой.

1 Ответ

0 голосов
/ 22 апреля 2019

Оказывается, у меня была открытая вкладка из старого проекта, которая использовала actioncable, и хотя я закрыл сервер и запустил новую вкладку для текущего запущенного сервера, старая открытая вкладка все еще имела эффект.

Решением было закрыть все открытые вкладки, которые были на 127.0.0.1:3000, и открывать такие вкладки только после запуска сервера.

...