Я пытаюсь создать драгоценный камень, который предоставляет канал ActionCable, но я не могу заставить его работать.Канал ActionCable недоступен вне rails plugin
Это мой драгоценный камень
# lib/my_channel.rb
class MyChannel < ActionCable::Channel::Base
def wait(data)
# logic ...
end
end
# lib/engine.rb
module MyApp
class Engine < ::Rails::Engine
isolate_namespace MyApp
end
end
Я затем добавить драгоценный камень в моих основных приложений Gemfile
, запустите bundle install
, запустите консоль и запустить MyChannel
. Которые не дают и ошибки, а это означает, что канал включен правильно.
Я затем добавить это к моему основному приложению
// application.js
var socket = "ws://localhost:3000/cable";
var cable = ActionCable.createConsumer(socket);
cable.subscriptions.create({ "channel": "MyChannel" }, {
received: function(){
// ...
}
});
Но я получаю эту ошибку
Subscription class not found ({"command"=>"subscribe", "identifier"=>"{\"channel\":\"MyChannel\"}"})
Что мне не хватает?
Какая версия действия Cabel у вас есть? Rails Beta1? –
@JohnKacz yes, thats right – Oleander
Похоже, у вас нет подписанного метода, определенного в вашем классе MyChannel. Из документов ([link] (https://github.com/rails/rails/tree/master/actioncable#channel-example-1-user-appearances)): «Просто вызов« App.cable.subscriptions.create » будет настраивать подписку, которая будет называться 'AppearanceChannel # signeded' ' –