NameError尝试访问Channel中的Connection变量

时间:2018-11-02 20:43:05

标签: ruby ruby-on-rails-5 actioncable

我有一个设置了current_user变量的Connection:

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可用于相应的渠道。 The docs say

  

还请注意,在此示例中,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>

我在做什么错了?

0 个答案:

没有答案