如何通过javascript persistent(rails)

时间:2016-05-05 13:37:44

标签: javascript jquery css ruby-on-rails

我试图通过javascript持久化进行更改。 具体来说,我有一个rails应用程序,允许用户喜欢"喜欢"其他用户'帖子。当用户喜欢(收藏)帖子或创建新的favorite时,我希望使用javascript和/或jQuery更改帖子的背景颜色(例如,改为green)(I看不到任何其他方式这样做)。问题是,当我重新加载页面时,更改不是持久的,背景颜色变为默认值。

我尝试了以下方法,但都没有效果;

addClassremoveClass

结合使用 直接

append <style> ... </style>代码,因此样式的更改可能会持续存在,但不会成功。

我已经在app/views/favorites/create.js.erb中直接在视图模板中尝试了上述操作,其中使用<script> ... </script>标记显示了已删除的帖子。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

要使数据持久化,您需要将其存储在数据库中。您可以发出ajax请求并将like事务保存在db中。成功的ajax请求后,您可以使用addClassremoveClass修改元素。这些更改将在重新加载时丢失。

根据db中保存的值,您需要在前端分配类。您必须在erb文件中编写相同的元素修改。

<div class=<%= liked?(post, current_user) ? 'liked-class' : 'not-liked-class' %>>
</div>

你需要这样的东西。上面的代码只是一个例子。您需要编写liked?辅助方法逻辑,类名等。