我有一个设置了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>
我在做什么错了?