当我想将用户重定向回他们所在的上一页(refferer)时,我应该使用redirect_to :back
还是使用以下代码块:
session[:return_to] = request.referer
# Do whatever you want
redirect_to session.delete(:return_to)
对于较长的方法是否有任何优点,或者我应该切换到快速方式:)
答案 0 :(得分:3)
在Rails 4中,redirect_to :back
与redirect_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)