ActionCable连接方法永远不会被调用

时间:2019-03-17 13:19:54

标签: ruby-on-rails actioncable

我正在使用Rails和ActionCable构建应用程序,但我不断获得

  

未定义的局部变量或方法`current_user'

connect方法从未成功

class OrdersChannel < ApplicationCable::Channel
  def subscribed
    stream_from "market_orders_channel_#{current_user.id}"
  end

  def unsubscribed
    # Any cleanup needed when channel is unsubscribed
  end
end

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

    rescue_from ActiveRecord::RecordNotFound do
      reject_unauthorized_connection
    end

    def connect
      self.current_user = find_verified_user
    end

    protected

    def find_verified_user
      token = Doorkeeper::AccessToken.find_by(token: request.params[:access_token])
      reject_unauthorized_connection if token.blank?

      Spree::User.find(token.resource_owner_id)
    end
  end
end

当我在连接中添加断点时,它永远不会被调用,并且在subscribed方法中,我不断出错。如何解决这个问题?我正在使用ruby 2.5.1和rails 5.2.0

我已经尝试了所有其他解决方案,但是没有一个起作用

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,我想在我的Spree扩展名中而不是在我的主项目中定义动作电缆通道,当我将代码移到主项目中时就可以使用