>我有一个称为重定向或默认的应用程序控制器方法,用于将用户重定向到他们在登录后请求的页面
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
我希望能够选择性地将URL参数(用于某些分析跟踪)添加到URL,但不确定最佳方法。 我想将方法签名更改为此
def redirect_back_or_default(default, params=nil)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
并以某种方式将参数附加到现有 URL。 是否有标准的红宝石或 ROR 方法可以做到这一点?我显然可以暴力检查是否有查询字符串作为带有正则表达式的 URL 的一部分,并手动构建查询字符串,但我希望有一种更简单的标准方法来做到这一点。
从这里:
使用 redirect_to 传递参数 您只需添加它们即可。 喜欢。。。
redirect_to :controller => 'another', :action => 'def', :param1 => 'some', :param2 => 'thing', :param => 'else'
标准方法
def redirect_to_back_or_default(default = "/")
back = case request.env["HTTP_REFERER"]
when request.fullpath
default
when nil
default
else
:back
end
redirect_to back
end