Rails5 ActionCable 包括来自 SessionsHelper 的 current_user 方法

Rails5 ActionCable include current_user method from SessionsHelper

我想访问 current_user 方法,该方法在 SessionsHelper 中定义。我如何 include 或要求 ApplicationCable 连接 class?

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      if current_user
        self.current_user = current_user  
        logger.add_tags current_user.name
      end
    end
  end
end

给我

There was an exception - NoMethodError(undefined method `name' for nil:NilClass)

相当于我在channels/application_cable/connection.rb

中包含SessionHelper的ApplicationController
module ApplicationCable
  class Connection < ActionCable::Connection::Base
    include SessionsHelper
    identified_by :current_user
    # (..)
  end
end

但不起作用。

正如您在注释中引用的 notesof the official documentation the cable can not access the session. In this 文章中看到的那样,您可以找到一种使用 cookie 来管理身份验证的方法