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

时间:2011-05-10 13:27:55

标签: ruby ruby-on-rails-3

我有一个名为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的一部分并手动构建查询字符串,但我希望有一种更简单的标准方法来执行此操作。

2 个答案:

答案 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