轨道 - 将查询参数附加到现有 URL



>我有一个称为重定向或默认的应用程序控制器方法,用于将用户重定向到他们在登录后请求的页面

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

相关内容

  • 没有找到相关文章

最新更新