1

我有这样的路线:

match '/pages/:name/preview' =>  'pages#page_preview'

但是,当这样的路线出现时,它给了我一个错误“没有路线匹配” /pages/a.com/preview。我尝试了 URL 编码。字符到%2E,但同样的错误也随之而来。resources :pages在定义预览路线之前,我还在页面 ( ) 上设置了资源。

该路线适用于所有其他路线,名称参数中没有.字符(空格和?等工作正常)

4

1 回答 1

4

这是因为点被用作格式化路线的分隔符。要摆脱这种情况,请添加一个覆盖它的约束。

match '/pages/:name/preview' =>  'pages#page_preview', :constraints => { :name => /[^\/]+/ }

这将允许除斜线之外的任何内容。

于 2013-01-18T07:34:59.067 回答