我有一个这样的路由:
match '/pages/:name/preview' => 'pages#page_preview'
但是,它给我一个错误'没有路由匹配',当这样的路由来/pages/a.com/preview
。我尝试了URL编码。字符转换为%2E
,但是同样的错误也出现了。在定义预览路由之前,我还在页面(resources :pages
)上设置了资源。
路由对所有其他路由工作正常,这些路由在名称参数(空格和?)中没有.
字符。
这是因为点被用作格式化路由的分隔符。要解决这个问题,请添加一个覆盖此约束的约束。
match '/pages/:name/preview' => 'pages#page_preview', :constraints => { :name => /[^/]+/ }