【发布时间】:2016-05-05 13:37:44
【问题描述】:
我正在尝试使 javascript 所做的更改持久化。
具体来说,我有一个 Rails 应用程序,它允许用户“喜欢”其他用户的帖子。当用户喜欢(喜欢)帖子时,或者创建新的favorite 时,我希望使用 javascript 和/或 jQuery(我看不到任何其他方式来做到这一点)。问题是当我重新加载页面时,更改不是持久的,背景颜色变成了默认颜色。
我尝试了以下方法,但都没有奏效;
addClass 结合removeClass
append <style> ... </style> 直接标记,因此样式的更改可以持久,但不会成功。
我已经在app/views/favorites/create.js.erb 和直接在使用<script> ... </script> 标签显示收藏帖子的视图模板中尝试了上述方法。
任何建议将不胜感激。
【问题讨论】:
-
当用户点赞帖子时,您是否成功地将
favorite(或类似名称)保存到数据库中? -
对我来说,jvillian 所问的是情况的症结所在。我个人不喜欢将任何特定于视图的内容存储到数据库中,但如果您坚持“最喜欢”的概念,也许您可以根据该状态切换 UI 行为?
-
我有
favorite模型存储在数据库中,我使用 Ajax 请求来创建/销毁资源。我想要的只是一个客户端逻辑,它可以允许 javascript 所做的修改是持久的。但是由于这似乎需要在数据库中存储 UI 数据,你说这不是正确的方法,所以我决定不实现这个功能。你能告诉我为什么将 UI 信息存储在数据库中是个坏主意吗? -
@humblearner 我已经用一个例子更新了我的答案。你可以得到一个想法。
标签: javascript jquery css ruby-on-rails