【问题标题】:Rails conditional routesRails 条件路由
【发布时间】:2010-10-16 06:36:29
【问题描述】:

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

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

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

我首先尝试了一个前置过滤器,但结果导致了重定向循环。这个问题的解决方案很混乱。

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

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

有什么想法吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails routes conditional


    【解决方案1】:

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

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

    您可能想使用:

    redirect_to [...] and return false
    

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

    祝你好运!

    【讨论】:

      【解决方案2】:

      我认为这个问题和我昨天遇到的一样(我在 Rails 2.1 上),我的解决方案可以在这里找到 my blog, it's really simple !

      【讨论】:

        【解决方案3】:

        我猜,:constraints => 的这个 approach 定义可能正是您所寻找的

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-17
          • 1970-01-01
          相关资源
          最近更新 更多