我正在尝试设置一个用户创建向导,用户只能转到与用户所在向导中当前步骤对应的页面。
我已经整理了状态机功能。当前状态存储在DB中。这不是问题
问题是如何将用户重定向到正确的页面。
我首先尝试了一个前置过滤器,但这导致了重定向循环。对此的解决方案很混乱。
我尝试的下一件事是使用redirect_to将请求发送到一个操作,然后重定向到正确的页面。这导致了DoubleRenderError,因为我重定向了两次。我认为redirect_to是一个新的http请求,但似乎不是。
我现在想知道是否可以直接在路线中设置这种功能。我需要访问DB才能获得当前状态。我不知道这是怎么做的,或者是否可能
有什么想法吗?
谢谢
答案 0 :(得分:2)
我不确定我是否完全理解你的问题。
但是,你得到双重渲染错误的原因是因为继续执行了一个简单的redirect_to ruby代码。在某些时候,这段代码试图再次渲染数据(因此DoubleRenderError)。
您可能想要使用:
redirect_to [...] and return false
这将阻止任何后续代码被执行,因此会阻止DoubleRenderError。
祝你好运!答案 1 :(得分:0)
我认为这个问题和我昨天经历的一样(我在Rails 2.1上),我的解决方案可以在my blog, it's really simple !找到
答案 2 :(得分:0)
我想,:constraints =>
{{1}}的{{3}}定义可能正是您所寻找的