我有一个由RoR中的几个部分组成的页面。 部分将显示为用户按下某个按钮,并且它们在同一页面中呈现。 当我更改页面时,我希望浏览器的后退按钮不会在没有部分渲染的索引页面中重定向我,而是完全在已经由我离开之前的几个部分组成的同一页面中。
有可能吗? 如果是的话怎么样?
答案 0 :(得分:1)
您可以考虑设置会话变量或cookie,以存储有关当前用户浏览的一些信息。
在我的应用程序中,我有几个打开扩展工具栏的切换,如果用户打开它,我希望它为他们保持开放,无论是重新加载还是返回等。
所以,这样做,当他们点击按钮时我有一个AJAX请求(为了在点击时渲染部分内容,你似乎已经打算这样做了)。
在控制器动作中显示部分我会包括:
...
session[:user_options][:partial_name] = true
...
然后在您看来,您可以说:
- if session[:user_options][:partial_name] = true
= render 'partial'
唯一的 gotcha 是你必须确保在你的应用程序中定义会话[:user_options],否则你有时会得到nil对象错误。
我不知道这是否是针对您的特定问题的最佳解决方案,但它是我熟悉的 解决方案。稍微测试一下,也许你可以重新混合基本的想法以适应你的需要。