Jak*_*old 1 queue notifications social-networking ruby-on-rails-3
这里最简单的例子就是Facebook通知,例如当有人发布你的状态评论,喜欢你的照片,或者只是向你发送邀请给某些游戏时.
在Rails应用程序中实现此功能有哪些方法,以便通知仅在用户阅读之前显示给用户,并且可能在不同平台上读取通知.
我不是在这里谈论使用服务器推送的类似实时聊天的通知,而是在某种方式向用户显示自上次访问网站以来发生的事情.
例如,我读了一篇文章,发表评论然后有人回复.下次登录时,我希望能够看到有人回复了我的评论.
想到的一个解决方案是拥有某种类型的Notification模型,该模型具有read属性,当用户访问该网站时,它将显示当前未读的所有通知.
没有使用关系数据库,有没有更好的方法来做到这一点?
我User通过序列化messages数组使用我现有的模型.
通过迁移将messages列(TEXT类型)添加到用户表:
add_column :users, :messages, :text, :null => false, :default => "--- []"
Run Code Online (Sandbox Code Playgroud)
然后在您的user模型中序列化它:
serialize :messages, Array
Run Code Online (Sandbox Code Playgroud)
现在,你可以这样做:
# Add messages
@user.messages.push "You have a new message!"
# Read messages
@user.messages # => ["You have a new message!"]
# Clear one message
@user.messages.delete_at(0)
# Clear all messages
@user.messages.clear
# Get message counts
@user.messages.empty? # => true
@user.messages.count # => 0
Run Code Online (Sandbox Code Playgroud)
如果您需要包含多个参数(来自主题,重要性)的更详细消息,则可以始终使用散列.
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |