如何将redirect_to()与rails 3中当前params []数组中的所有内容一起使用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将redirect_to()与rails 3中当前params []数组中的所有内容一起使用?相关的知识,希望对你有一定的参考价值。

我想发送redirect_to函数所有当前页面的参数,而不知道各个参数。特定页面上的参数在数量上是可变的,并且在开发期间并不总是已知的。到目前为止,我只找到了发送已知参数和值的示例。

我想做这个:

redirect_to named_path, :notice => 'Some notice.', :params => params

我不想这样做:

redirect_to named_path, :notice => 'Some notice.', :param1 => "v1", :param2 => "v2", ...

TIA!

答案

这可能有效:(未经过测试)

redirect_to named_path, params.merge({ :notice => 'Some notice' })

我们的想法是使redirect_to的最后一个参数基于原始的params哈希进行单个哈希,并合并为任何其他值。

另一答案

您可以使用

redirect_to named_pa​​th(params.merge(:notice =>'Some notice。'))

你甚至可以改变参数,删除一些使用params.merge()与他的正常行为:)

另一答案

您可以使用以下命令向当前路径添加更多参数:

redirect_to request.params.merge({new_params: 'foo'})

此外,您可以使用以下代码将带有新参数的所有当前参数传递到新路径:

redirect_to new_path(request.params.merge({new_params: 'foo'}).except(:action, :controller))

paramsActionController::Parameters的一个例子。所以它不能转换为哈希,也不支持.merge方法。因此,请改用request.params

以上是关于如何将redirect_to()与rails 3中当前params []数组中的所有内容一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 中将 redirect_to 格式更改为 :js

Rails redirect_to - 我也想重新加载页面

Rails - 如何将生成的 URL 修复为友好的 URL

支付成功后渲染视图

管理命名空间中的 redirect_to 对象

处理 Rails 中 STI 子类的路由的最佳实践