出于网络跟踪的目的,我想在Rails中使用redirect_to
时保留HTTP引荐来源。需要这样才能重定向到相应的语言版本。
代码示例:
redirect_to "/#{Option[:locales].first}", :status => 301
如何在不使用查询参数的情况下保留引荐来源?
答案 0 :(得分:2)
this question中有一些详细介绍的方法。
我首选的方法是在控制器中为store_referrer
设置一个before_filter,在我的application_controller
中调用这样的方法。然后在您的操作中使用redirect_back_or_default
方法来处理重定向。
def store_referrer
session[:return_to] = request.request_uri
end
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
您还可以查看Rails中可用的redirect_to :back
方法,或者如果您使用的是Authlogic / Devise,它们都会使用类似的帮助程序来执行相同的操作。