0

我正在尝试设置一个用户创建向导,其中用户只能转到与用户所在的向导中当前步骤相对应的页面。

我已经整理好了状态机功能。当前状态存储在数据库中。这不是问题

问题是如何将用户重定向到正确的页面。

我首先尝试了一个 before 过滤器,但这导致了一个重定向循环。解决方案很混乱。

我尝试的下一件事是使用 redirect_to 将请求发送到一个操作,然后重定向到正确的页面。这导致了 DoubleRenderError,因为我重定向了两次。我认为redirect_to 是一个新的http 请求,但似乎不是。

我现在想知道是否可以直接在路由中设置这种功能。我将需要访问数据库以获取当前状态。我不知道这是如何完成的,或者是否有可能

有任何想法吗?

谢谢

4

3 回答 3

2

我不确定我是否完全理解你的问题。

但是,出现双重渲染错误的原因是因为在一个普通的 redirect_to ruby​​ 代码继续执行之后。在某些时候,此代码尝试再次呈现数据(因此出现 DoubleRenderError)。

您可能想使用:

redirect_to [...] and return false

这将阻止任何以后的代码被执行,从而防止出现 DoubleRenderError。

祝你好运!

于 2009-03-29T23:41:13.013 回答
0

我想这个问题和我昨天遇到的一样(我在 Rails 2.1 上),我的解决方案可以在我的博客上找到,真的很简单!

于 2010-08-05T10:11:43.397 回答
0

我想,这种定义方法:constraints =>可能正是您所寻找的

于 2012-04-09T01:46:09.727 回答