没有路线匹配时。字符进入参数

时间:2013-01-18 06:57:26

标签: ruby-on-rails ruby-on-rails-3 routing urlencode

我有这样的路线:

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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