我想发送redirect_to函数所有当前页面的参数,而不知道各个参数。特定页面上的参数在数量上是可变的,并且在开发期间并不总是已知的。到目前为止,我只找到了发送已知参数和值的示例。
我希望执行此操作:
redirect_to named_path, :notice => 'Some notice.', :params => params
我不希望执行此操作:
redirect_to named_path, :notice => 'Some notice.', :param1 => "v1", :param2 => "v2", ...
TIA!
答案 0 :(得分:1)
这可行:(未测试)
redirect_to named_path, params.merge({ :notice => 'Some notice' })
我们的想法是根据原始redirect_to
哈希创建params
单哈希的最后一个参数,并合并任何其他值。
答案 1 :(得分:1)
您可以使用
redirect_to named_path(params.merge(:notice =>'some notice。'))
你甚至可以改变参数,使用params.merge()以及他的正常行为删除一些参数:)
答案 2 :(得分:0)
您可以使用以下内容向当前路径添加更多参数:
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
。