rails中n秒页面自动跳转

关于n秒后跳转google上很多文章,讲的很详细了
这里主要还是使用meta来实现
直接照下面这样写就可以了

render :text=>'<meta http-equiv="refresh" content="3; url=/welcome"> 3s refresh'


如果需要这里我们写个helper来做这个事情


创建一个helper

>ruby script\generate helper c_http


编辑helper内容如下,这里主要使用了 eval 方法

>type app\helpers\c_http_helper.rb
module CHttpHelper
 def auto_redirect(arg={})
   sec = arg[:sec] || 3
   url = arg[:url] || '/'
   msg = arg[:msg] || ''
   msg += " Redirect to '#{url}' after #{sec} sec"
   eval("render :text=>\"<meta http-equiv='refresh' content='#{sec}; url=#{url}'>#{msg}\"")
 end
end


在controller中使用helper

class SessionsController < ApplicationController
 include CUserAuthenticationHelper
 include CHttpHelper
 def new
   userid = params[:userid]
   passwd = params[:passwd]
   if authenticate(userid,passwd)
     ...
   else
     auto_redirect(:sec=>'5',:url=>welcome_path,:msg=>'sql query error')
   end
 end
 ...
end


转载自:http://clark1231.iteye.com/blog/1320214

你可能感兴趣的:(自动跳转,Rails)