繁体   English   中英

在Rails中使用javascript保存状态

[英]saving state with javascript in rails

因此,我为此进行了几次尝试,但决定我需要社区中有关最佳做法的一些建议。 这就是我想要做的。

我在多个视图中使用jquery切换显示或隐藏它们的多个元素。 我想要做的是保存它们的状态,以便它们在请求中保持不变。 (即,如果用户显示的是panel1,但是panel2是隐藏的,则刷新时,它们将保持这种状态)

我在考虑每次用户切换元素时,都可以在会话中保存该元素的CSS显示值。 然后在每次页面加载之后,我可以使用jquery的.class选择器来获取所有带有“ toggle”类的元素,并将其应用于这些元素。

这个主意听起来不错,但我不够聪明,无法实现。 我不确定如何执行javascript,并让其解析ruby代码,而不是让该视图的ajax调用.js.erb。

我已经玩了几个小时,没有成功。 有没有人有什么建议可以帮助我朝正确的方向入手?

也许更简单的方法是使用Cookie来保存切换状态。 可以使用jQuery / JavaScript来完成,并且完全不需要Rails担心。

我认为有两种方法可以进行。

1)您提到的第一个是非常临时的:将信息保存到会话或缓存中

2)如果您希望它具有持久性:将当前用户的状态保存在数据库和缓存中以便快速访问。

两者都需要一些ajax请求,您必须处理这些请求才能让服务器知道正在发生什么。

我将使用一些jQuery函数:单击然后切换,它将添加或删除“隐藏”类(在您的CSS中仅为“ display:none;”)。 我将这些功能保留在客户端(不使用任何js.erj或rjs)。

除了切换之外,我还将基于用户单击的面板中是否存在“隐藏”类,向布尔值发送带有布尔值的ajax请求。 这只会渲染:text =>'状态已保存'或'状态未保存'。

首次加载页面时,如果panel1_show == true%>只需将<%='hidden'添加到每个面板的类中。

希望这会有所帮助,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM