我正在为可选参数的路由和默认值进行摔跤。鉴于路线:
get '/product/:key(/:env(/:version))', to: 'delivery#widget_view',
defaults: { env: 'live' }, as: :product_view
我理解如果我给它一个版本,那么我也应该给它一个 env 。当我
link_to 'view it', key: 'mykey', env: 'live', version: 6
结果网址为
/product/mykey/6
然后最终创建 params [env] = 6 ,版本
没有值如果我删除默认设置或make:env需要删除(),' live'明确包含在生成的URL中。这是我现在的解决方案,但有些东西让Rails给我:env当我提供:版本?
答案 0 :(得分:1)
需要env
param,如下所示
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'
你的问题是:Rails有什么东西给我:env当我提供:版本?是的,您可以致电product_view_path
并通过version
而不通过env
product_view_path('mykey', version: 6) => '/product/mykey/live/6'