是否可以在rails中发送定向flash消息?

时间:2012-05-14 19:41:38

标签: ruby-on-rails flash-message

这是一个愚蠢的问题,但可以发送

flash[:success] 

指向屏幕上当前用户以外的某个用户?在我的一个控制器中我有

if @article.up_votes.count > 10
    flash[:success ] = 'something'
end

是否可以将该Flash发送给文章的所有者?而不是我自己的屏幕?还是有另一种方法可以做到这一点?

我试过翻阅

http://api.rubyonrails.org/classes/ActionDispatch/Flash/FlashHash.html#method-i-notice

但找不到任何有用的方法。也许我读错了?有没有办法达到同样的效果?

谢谢......

3 个答案:

答案 0 :(得分:0)

不使用闪光灯,你必须尝试别的东西,有很多方法可以解决,但闪光灯不是其中之一。好吧,你仍然可以使用闪存,但它不会从一个用户发送到另一个用户,你可能会出现一条闪存消息,以便通知用户。

要弄清楚的第一件事是你如何通知其他用户,他什么时候会收到通知,你是否希望他在使用你的网站时得到通知?或者只有他在您的网站上做了特定的事情?

答案 1 :(得分:0)

对于我所知道的最佳方式,也许唯一的方法实际上是推送通知。有很多方法可以达到这个目的,但我认为faye应该是最简单的。

请参阅此截屏视频以了解它以及稍后的内容。您希望为每个用户创建一个频道,以便获得该消息。进一步搜索私人酒吧所以没有人可以听别人频道

http://railscasts.com/episodes/260-messaging-with-faye

http://railscasts.com/episodes/316-private-pub

答案 2 :(得分:0)

正如ismaelga所提到的,我也认为推送通知是最佳选择(WebSockets)。

除了Faye,您还可以使用名为Pusher(pusher.com)的托管解决方案。

这是关于Pusher如何帮助您的简短描述。使用您的应用程序的所有用户都会在WebSocket服务器上(通过JavaScript)侦听消息。在这种情况下Pusher。然后,您可以通过Rails应用程序向Pusher发送消息。当您向Pusher发送消息时,所有用户将立即通过JavaScript(通过WebSocket)收到有关新消息的通知。要仅通知特定用户,您可以使用Pusher的“私人频道”功能。

Pusher有一些关于如何使用其服务的非常好的文档:http://pusher.com/docs/javascript_quick_start

这张照片(取自Nettuts +)也可能让您更好地了解Pusher的工作原理:http://d2o0t5hpnwv4c1.cloudfront.net/1059_pusher/pusher_websocket.png

希望这有点帮助。