30

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

如何将当前请求中的参数值传递给 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]
4

2 回答 2

41

“记录”形式redirect_to的第二个参数仅用于响应状态。您必须使用另一种形式的 redirect_to,例如“String”形式。例如:

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

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

redirect_to polymorphic_path(@thing, :foo => params[:foo])
于 2009-04-04T13:49:41.213 回答
4

添加到乔丹的答案:

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

于 2009-04-06T01:19:47.427 回答