2013-04-08 57 views
0

快速问题在这里。导轨,退出浏览器后退按钮

我为用户创建了3步表单 - 所有AJAX(并使用Devise)。用户在第一步创建,并在第二步中更新。

现在,问题是,如果用户在浏览器中点击后退按钮返回到第一步,设计会自动将表单动作更改为update。但是,我的动作update呈现的部分只能通过Ajax在步骤2和3中呈现。

如何使用户在按下后退按钮时注销,以便第一个窗体始终为new_user窗体?

+0

您是否需要在第一步创建对象?您是否尝试过使用恶意[gem](https://github.com/schneems/wicked)来创建表单? – stephenmurdoch 2013-04-08 01:16:50

+0

好吧,我选择Devise的原因是这个对象确实是在第一步创建的(我可以稍后更新它)。 – abhir 2013-04-08 01:26:44

+0

wicked是创建多步表单的宝石,所以你的对象不会被创建,直到最后一步,这将允许你以你想要的方式使用后退按钮 – stephenmurdoch 2013-04-08 01:41:07

回答

3

一个解决方案是在浏览器中关闭后退按钮。

您可以使用模式来实现这三个步骤。如果您正在使用Ajax,请使用它。

由此,浏览器上没有“返回”按钮。但是你的模式窗口上仍然可以有“后退”按钮,在这种情况下,后退选项完全在你的控制之下。

添加

可用性,你应该允许用户随时更新的,而不是强迫他们完成所有签约之后他们的信息。

我不知道你接下来的两个步骤是什么。但是你可以

  1. 设置的update方法来呈现下两步如果用户还没有完成他们,或者如果完成渲染等信息。

  2. 如果用户已登录但未完成这两个步骤,请显示通知。

通过这些,你应该能够确保用户在浏览器上做的任何事情,他可以看到他需要做的下一步。这些应该适用于Ajax或不适用Ajax。

+0

我喜欢这样 - 但如果我在做这并使用设计进行身份验证,用户仍然登录正确?所以,他们可以点击刷新按钮,我也有同样的问题。 – abhir 2013-04-08 01:46:21

+0

@abhir,检查我的更新答案。 – 2013-04-08 01:54:50