gpt4 book ai didi

ruby-on-rails - Rails 4 强制将默认路由参数包含在生成的 URL 中

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:50 25 4
gpt4 key购买 nike

我正在努力处理可选参数的路由和默认值。给定路线:

    get '/product/:key(/:env(/:version))', to: 'delivery#widget_view',
defaults: { env: 'live' }, as: :product_view

我知道如果我给它一个version,那么我也应该给它一个env。当我

link_to 'view it', key: 'mykey', env: 'live', version: 6

生成的 URL 是

/product/mykey/6

然后最终创建 params[env] = 6,并且 version 没有值

如果我删除默认值或通过删除 () 使 :env 成为必需,则“live”将明确包含在生成的 URL 中。这是我现在的解决方案,但是当我提供 :version 时,有没有办法让 Rails 给我 :env?

最佳答案

使 env 参数如下所示

get '/product/:key/:env(/:version)', to: 'delivery#widget_view',
defaults: { env: 'live' }, as: :product_view

当你调用product_view_path时没有传递env,将使用默认值

product_view_path('mykey') => '/product/mykey/live'

您的问题是:当我提供 :version 时,有没有办法让 Rails 给我 :env?是的,您可以调用 product_view_path 并传递 version 而无需传递 env

product_view_path('mykey', version: 6) => '/product/mykey/live/6'

关于ruby-on-rails - Rails 4 强制将默认路由参数包含在生成的 URL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807902/

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