我有一个名为redirect back或default的应用程序控制器方法,用于将用户重定向到登录后请求的页面
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
我希望能够有选择地将URL参数(对于某些分析跟踪)添加到网址,但我不确定最佳方式。我想将方法签名更改为此
def redirect_back_or_default(default, params=nil)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
并以某种方式将params附加到现有URL。是否有标准的红宝石或ROR方式来做到这一点?我显然可以强制检查是否有查询字符串作为带有正则表达式的URL的一部分并手动构建查询字符串,但我希望有一种更简单的标准方法来执行此操作。
答案 0 :(得分:0)
来自here:
使用redirect_to传递参数 你只需添加它们。喜欢......
redirect_to :controller => 'another', :action => 'def', :param1 => 'some', :param2 => 'thing', :param => 'else'
答案 1 :(得分:0)
标准方法
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