У меня есть Соединение, которое устанавливает переменную current_user
:
class MyConnection < ActionCable::Connection::Base
identified_by :current_user
def connect
# snip - work to authenticate the user
self.current_user = user
end
end
Согласно документации, это должно сделать переменную current_user
доступной для соответствующего канала. В документах написано :
Также обратите внимание, что в этом примере current_user доступен, поскольку он был помечен как идентифицирующий атрибут в соединении. Все такие идентификаторы автоматически создают метод делегирования с тем же именем в экземпляре канала.
Однако, когда я пытаюсь получить доступ к current_user
в MyChannel
:
class MyChannel < ActionCable::Channel::Base
def subscribed
subscription_name = "my_channel#{current_user.id}"
stream_from subscription_name
end
end
Я получаю NameError
:
NameError - undefined local variable or method `current_user' for #<MyChannel:0x00000000deadbeef>
Что я делаю не так?