【问题标题】:Redirect after few second in rails 3.1在 Rails 3.1 中几秒钟后重定向
【发布时间】:2012-02-09 07:23:00
【问题描述】:

有没有办法在几秒钟后通过使用 rails 进行重定向?

我希望当用户单击链接时看到页面并在几秒钟后重定向到他的个人资料(user_path)

【问题讨论】:

    标签: ruby redirect time


    【解决方案1】:

    因为 HTML 是 Rails 应用程序的一部分,您可以默认使用标准的 html 重定向选项:

    <meta HTTP-EQUIV="REFRESH" content="0; url=http://www.yourdomain.com/index.html">
    

    0 更改为您希望在重定向之前等待的秒数。

    另一方面,您可以使用 javascript(也是 rails 应用程序的一部分):

    <html>
    <head>
    <script type="text/javascript">
    function delayedRedirect(){
        window.location = "/default.aspx"
    }
    </script>
    </head>
    <body onLoad="setTimeout('delayedRedirect()', 3000)">
    <h2>You'll be redirected soon!</h2>
    </body>
    </html>
    

    【讨论】:

    • 但是我想重定向user_path,不使用rails怎么办?
    • @roine,只需将"/default.aspx" 替换为"&lt;%= user_path %&gt;"
    • @Mischa 它适用于您将"/default.aspx" 替换为"&lt;%= user_path %&gt;",因为对我来说它不起作用。我不认为 javascript 可以识别 rails 标签
    • 是的,它对我有用,你可以像这样混合 Rails 代码和 javascript。我已经用过很多次了。我猜你做错了什么。请使用您的确切代码更新您的问题并发布您收到的任何错误消息。
    • 仅供参考,对于那些因无法使用 ERB 标签(&lt;%=%&gt; 标签)而遇到上述问题的人,您需要通过附加 @ 使该文件成为 ERB 文件987654330@ 到预编译文件的文件名末尾。这些标签是特定于 ERB,而不是 Rails。
    【解决方案2】:

    你可以使用sleep方法

        sleep(2.0)
        redirect_to root_path
    

    【讨论】:

    • 问题是页面没有显示。我想显示一个页面并在此页面上等待 2 秒,但它不起作用
    • 这将占用 web worker 和所有后续对服务器的请求两秒钟的宝贵时间。我强烈建议不要这样做。
    猜你喜欢
    • 1970-01-01
    • 2012-06-26
    • 2015-12-12
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多