如何在Active Admin中使用Action电缆

时间:2016-10-28 23:31:05

标签: ruby-on-rails devise activeadmin actioncable

我使用Activeadmin制作仪表板页面并设计用户授权。我有2个模型是会员(普通用户)和用户(管理员用户)。当我使用Action电缆功能显示用户外观时,只有会员用户才能收到这些广播。问题是用户模型也可以如何接收这些广播?

感谢您的时间,对不起我的笨拙英语

我的连接

模块ApplicationCable   class Connection< ActionCable ::连接::基地     identified_by:current_member

def connect
  self.current_member = find_verified_member
  # self.current_user = find_verified_member
  logger.add_tags 'AcctionCable', current_member.email
end

protected
  def find_verified_member

    # if current_member = Member.find_by(id: cookies.signed[:member_id])
    if verified_member = env['warden'].user
      verified_member
    else
      reject_unauthorized_connection
    end
  end

端 端

2 个答案:

答案 0 :(得分:1)

如果您想与actioncable和activeadmin进行聊天,请参阅此处的gem实例。 active_admin_chat

或者也许您可以尝试下面的代码。

def connect
  self.current_member = find_verified_member
end

protected

def find_verified_member
  cookies_signed = cookies.signed
  admin_user_id = cookies_signed['admin_user.id']
  if admin_user_id
    AdminUser.find(admin_user_id)
  else
    User.find(cookies_signed['user.id'])
  end
end

答案 1 :(得分:0)

当成员与ActionCable建立连接时,您似乎希望向用户广播频道。如果是这样,在<Grid Margin="10,10,1477,669" BorderThickness="1"> <ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" Margin="10" HorizontalAlignment="Stretch" Height="200" Grid.Row="1"> <Frame x:Name="MyFrame" Margin="10" /> </ScrollViewer></Grid> 方法中,无论您订阅哪个频道成员,都希望管理员用户收到通知,请将广播作业运行到所有管理员用户都可以访问的频道。管理员可以建立客户端以订阅此频道以接收这些广播。