NameError пытается получить доступ к переменной Connection в Channel - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть Соединение, которое устанавливает переменную 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>

Что я делаю не так?

...