我应该使用redirect_to:back还是request.referer?

时间:2014-02-02 02:59:13

标签: ruby-on-rails

当我想将用户重定向回他们所在的上一页(refferer)时,我应该使用redirect_to :back还是使用以下代码块:

session[:return_to] = request.referer
# Do whatever you want
redirect_to session.delete(:return_to)

对于较长的方法是否有任何优点,或者我应该切换到快速方式:)

3 个答案:

答案 0 :(得分:3)

在Rails 4中,redirect_to :backredirect_to(request.env["HTTP_REFERER"])相同。 request是ActionDispatch :: Request的一个实例,它继承自Rack :: Request,它将referer定义为:

def referer
  @env['HTTP_REFERER']
end
alias referrer referer

所以,你看起来并不重要。我倾向于使用:支持自己。

答案 1 :(得分:1)

redirect_to :back

的简写
redirect_to(request.env["HTTP_REFERER"])

所以,你的更长的方法是不同的,所以选择取决于你(我会使用:回来,你在会话中存储一些东西,然后删除那些东西,这是额外的工作)

答案 2 :(得分:0)

使用:

redirect_to request.env["HTTP_REFERER"]

http://apidock.com/rails/ActionController/Base/redirect_to(前Rails 3)或http://apidock.com/rails/ActionController/Redirecting/redirect_to(Rails 3)