【问题标题】:Render back a partial渲染回部分
【发布时间】:2011-04-03 08:05:15
【问题描述】:

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

有可能吗? 如果是怎么办?

【问题讨论】:

  • 您可以使用 hashbang URL 来做到这一点。
  • 这是什么意思?你能说得更具体些吗?
  • 我读到 hashbang url 是一种“可怕”的做法,不是吗?
  • 这是一种观点,它所提出的观点具有一定的价值。然而,这并没有真正阻止 Github、Facebook、Kotaku 和其他一些公司在一些领域实施它。这样做的方法在网络上有很好的记录。如果您在使用代码时遇到问题,请提出问题! :)

标签: ruby-on-rails-3 render partial


【解决方案1】:

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

在我的应用程序中,我有几个打开扩展工具栏的开关,如果用户打开它,我希望它为他们保持打开状态,无论他们是重新加载还是返回等等。

因此,请执行此操作,当他们单击按钮时我有一个 AJAX 请求(看起来您已经准备这样做以便在单击时呈现部分内容)。

在显示部分的控制器动作中,我将包括以下内容:

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

那么在你看来你可以说:

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

唯一的问题是你必须确保 session[:user_options] 在你的应用中被定义,否则你有时会得到 nil object 错误。

我不知道这是否真的是针对您的特定问题的最佳解决方案,但它是我熟悉的一个解决方案。稍微测试一下,也许你可以重新组合基本的想法来满足你的需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多