vkill'blog

“技术本身没有太多价值,掌握了新的思考方式才是真的收获”

rails 中 n秒页面自动跳转

20:50 , vkill
关于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

Last modified by vkill on2010/08/03 18:44
类别:ruby & rails | Tags: , , , | 0 条评论, 1058 次阅读
网友评论(0):
发表评论:

Nickname: 
Email:
Site URI: