如何将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_path(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))
params
是ActionController::Parameters
的一个例子。所以它不能转换为哈希,也不支持.merge
方法。因此,请改用request.params
。
以上是关于如何将redirect_to()与rails 3中当前params []数组中的所有内容一起使用?的主要内容,如果未能解决你的问题,请参考以下文章