2011-04-03 185 views
0

我有一个由RoR中的几个部分组成的页面。 部分将在用户按下某个按钮时出现,并且它们呈现在同一页面中。 当我更改页面时,我希望浏览器的后退按钮不会重定向到没有部分呈现的索引页面,而是完全位于已经由几个部分组成的同一页面中,就像我离开之前那样。渲染回部分

可能吗? 如果是的话如何?

+0

你可以用hashbang URL来做到这一点。 – 2011-04-03 09:45:02

+0

这是什么意思?你可以说得更详细点吗 ? – Joe 2011-04-03 10:40:36

+0

我读过hashbang网址是一个“可怕”的做法是不是? – Joe 2011-04-03 10:43:18

回答

1

您可能会考虑设置会话变量或cookie,以存储有关当前用户浏览的信息。

在我的应用我有一对夫妇打开工具栏扩展的切换,如果用户打开它,我希望它保持打开他们是否重装还是回去等

所以,做这个,当他们点击按钮时(我们已经有了一个AJAX请求)(它看起来像你将要做的,以便在点击时渲染部分)。

在控制器动作,显示部分我将包括类似:

... 
session[:user_options][:partial_name] = true 
... 

然后在你看来,你可以说:

- if session[:user_options][:partial_name] = true 
    = render 'partial' 

唯一疑难杂症是你必须以确保在整个应用程序中定义会话[:user_options],否则有时会得到零对象错误。

我不知道这是不是真的为您的特定问题最佳的解决方案,但它是一个的解决方案,我很熟悉。测试一下,也许你可以重新混合基本想法以适应你的需要。