Почему я не могу получить current_user
внутри своего канала или как мне получить current_user
?
Что я использую?
- Rails 5.0.1 --api (У меня НЕТ представлений и Я не использую кофе)
- Я использую реактивное приложение, чтобы протестировать это (отлично работает БЕЗ авторизации)
- Я НЕ использую devise для аутентификации (я использую JWT вместо Knock, поэтому никаких файлов cookie)
Попытка получить current_user
внутри моего канала ActionCable, как описано в rubydoc.info
Код выглядит так
class MessageChannel < ApplicationCable::Channel
identified_by :current_user
def subscribed
stream_from 'message_' + find_current_user_privileges
end
def unsubscribed
# Any cleanup needed when channel is unsubscribed
end
protected
def find_current_user_privileges
if current_user.has_role? :admin
'admin'
else
'user_' + current_user.id
end
end
end
И запуская его, я получаю эту ошибку:
[NoMethodError - undefined method `identified_by' for MessageChannel:Class]
И если я уберу identified_by :current_user
, я получу
[NameError - undefined local variable or method `current_user' for #<MessageChannel:0x7ace398>]