1

我正在使用带有 ActionCable、gem Apartment 和 Stimulus Reflex 的 Rails 6 开发一个多租户应用程序。

connection.rb

` 模块 ApplicationCable 类 Connection < ActionCable::Connection::Base identify_by :current_user

def connect
  tenant = request.subdomain
  Apartment::Tenant.switch!(tenant)
  self.current_user = find_verified_user
  logger.add_tags "ActionCable", "User #{current_user.id}", "Tenant #{tenant}"
end

protected

  def find_verified_user
    if current_user = env['warden'].user
      current_user
    else
      reject_unauthorized_connection
    end
  end

结束结束`

我有这个,直到现在:

development.rb config.hosts << ".lvh.me" config.action_cable.url = 'ws://lvh.me:3000/cable' config.action_cable.allowed_request_origins = ['http:\/\/*.lvh.me:3000*']

通过在 connection.rb 中实现这行代码:logger.add_tags "ActionCable", "User #{current_user.id}", "Tenant #{tenant}"我可以在控制台中看到一开始一切正常,但是一旦我调用任何刺激反射动作,它就会显示:The ActionCable connection is not open! this.isActionCableConnectionOpen() must return true before calling this.stimulate(). 因为我在 Windows 机器上,所以我正在 Vagrant 框中开发应用程序,也许问题就在那里,但我不确定。请帮忙,我不知道如何解决这个问题。谢谢。

4

0 回答 0