我的Rails项目中有一个新功能。我需要插入一个" New!"在其菜单中标记,因此用户将注意到新功能可用。一旦访问了新的功能页面,这个"标记"必须消失。
Ruby on Rails怎么可能?
答案 0 :(得分:1)
绝对最简单的方法是查找sawFeatureX cookie并在呈现页面或用户解除通知时设置它。
更强大的解决方案是将信息存储在数据库中的用户模型上,但最终会为您提供大量的一次性布尔字段,这些字段可能是您想要的,也可能不是。
有很多变化。您可以使用HelloBar之类的东西来指出新内容,而无需将其内联到菜单中。所以。许多。 UX。变化。
但对于一次性的事情,cookie或db支持的解决方案似乎简单易行。
答案 1 :(得分:0)
我讨厌这个问题。
一个cookie很容易,但很粗糙,不会扩展。您真的不想为每次请求支付来回发送此数据的价格,直到时间结束。
保存在用户记录上似乎是对数据库设计的错误。
一个单独的数据库表,包含所有这些"我看到了特征X"看起来像是有点过分,我讨厌的东西只会在我的主DB中不受限制地增长。
你可以将它放在Redis中,memcached,但是你真的需要将它存储在RAM中吗?这是最昂贵的地方。
我认为理想的解决方案就像https://www.prefab.cloud/documentation/once_and_only_once这是一个服务(我写的)存储这个小"鲍勃看到X"在数据库中我不需要管理/关心。它处理缓存等,因此它与在Redis / etc中使用它一样快但耐用并且不会过期。