gpt4 book ai didi

ruby-on-rails - 如何最容易地通过路由助手转发参数?

转载 作者:行者123 更新时间:2023-12-02 06:42:09 26 4
gpt4 key购买 nike

这显然行不通:

redirect_to post_path(@post, :params => params)

因为 Rails 路由助手不允许您直接设置参数哈希(根据我的阅读)。

这可能会带来一些问题:

redirect_to post_path(@post, params)

因为您还会转发 :controller 和 :action 参数,这会将您带到您来自的同一 Controller 和操作。这通常不是您想要的。

这可行,但还不够,因为它很麻烦,因为它需要大量代码才能将所有参数(除了 :action 和 :controller)设置为现有参数:

redirect_to post_path(@post, {:someparameter => params[:someparameter]})

那么,最简​​单易行的方法是什么?

最佳答案

你可以很容易地转发除了你想排除的参数之外的所有参数,像这样:

redirect_to post_path(@post, params.to_hash.except(:controller, :action))

但如果您有嵌套资源,这可能会让您仍然通过 :authenticity_token、:_method 和其他参数(如 :id)发送,这可能是您不想要的。

因此,这似乎是最简单的方法,对于大多数用途是:

redirect_to post_path(@post, params.to_hash.slice(:someparameter, :anotheparameteryouwant))

这让您只需指定要发送的参数(不包括其余参数),而无需大量代码。

关于ruby-on-rails - 如何最容易地通过路由助手转发参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com