将param值传递给redirect_to作为rails中的查询字符串

这应该很简单,但我似乎找不到简单的答案。

如何将当前请求中的参数值传递给redirect_to调用? 我有一些表单值,我想传递给GET重定向的查询字符串

我想做的事情如下:

redirect_to @thing, :foo => params[:foo] 

并被发送到:

 http://things/4?[foo][key1]=val1&[foo][key2]=val2 

谢谢!

另外 – 如何处理redirect_to:back?

 redirect_to :back, :foo => params[:foo] 

redirect_to的“记录”forms仅将第二个参数用于响应状态。 你必须使用另一种forms的redirect_to,比如’String’forms。 例如:

 redirect_to thing_path(@thing, :foo => params[:foo]) 

这将适用于你提到的嵌套params[:foo] params。 或者,正如Drew在下面评论的那样,您可以使用polymorphic_url (或_path):

 redirect_to polymorphic_path(@thing, :foo => params[:foo]) 

添加乔丹的答案:

如果你不知道@thing可能是什么类型的对象,你可以使用通用的polymorphic_url方法。 无论如何,当您将对象传入redirect_to时,这是在内部调用的方法。