【问题标题】:Rails - Send alert to another user when they are assigned a new client (without refreshing their page)Rails - 当他们被分配一个新客户端时向另一个用户发送警报(不刷新他们的页面)
【发布时间】:2019-03-19 17:09:53
【问题描述】:

我有一个使用设计的用户模型和一个交易者模型。我想在为用户分配新交易者时向他们发送弹出消息或警报。

经理可以将交易者分配给用户,因此分配过程由与接收新交易者的用户不同的用户完成。

如何让经理的“分配”操作向已分配新交易者的特定用户发送警报?他们将登录,但我不希望他们刷新页面

traders_controller.rb 中的分配方法

if @trader.save
  // Send alert to user if @trader.user == current_user 
  flash[:notice] = "Successfully created trader." // flash message for manager
  redirect_to traders_path
  return
else
  render :new
  return
end

【问题讨论】:

  • 什么版本的 Rails?
  • @aridlehoover 我正在使用 Rails 5

标签: javascript ruby-on-rails


【解决方案1】:

您需要使用套接字将新信息推送到相应的客户端。如果您使用的是 Rails 5,则可以使用 ActionCable。您需要为用户订阅特定于他们的频道,然后在该频道上发布信息以更新用户。当然,您的前端需要知道如何处理数据。

https://guides.rubyonrails.org/action_cable_overview.html#client-server-interactions-subscriptions

如果您使用的是旧版本的 Rails,请查看这篇文章:

https://medium.freecodecamp.org/implementing-web-sockets-in-a-rails-4-fb45696f8d8c.

【讨论】:

  • 很好的答案。对此的替代方法可能是与可以为您处理困难部分的服务集成。我过去使用过 pusher.com,对此非常满意。您还可以通过每隔一段时间检查消息来在客户端实现轮询,但这非常浪费客户端和服务器资源,但是您不需要更多的基础设施来处理一个很好的快速-n-dirty 解决方案。
猜你喜欢
  • 2013-11-13
  • 2015-09-21
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
相关资源
最近更新 更多