Почему мне не удается получить current_user
внутри моего канала или как мне получить current_user
?
Что я использую?
- Rails 5.0.1 --api (у меня нет ни одного вида NOR, использующего кофе)
- Я использую адаптивное приложение для тестирования этого (отлично работает БЕЗ авторизации)
- Я НЕ использую devise для auth (вместо этого я использую 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>]