lul*_*ala 3 ruby ruby-on-rails ruby-on-rails-3
我希望像这样有SEO优化的网址
http://example.com/sites/1-blau.de/plans
Run Code Online (Sandbox Code Playgroud)
但路径中的点导致Rails陷入困境.如何将点转换为百分比表示形式,以便它可以工作?
我的路线:
resources :sites, only: [] do
resources :plans, only: [:index, :show] do
end
end
Run Code Online (Sandbox Code Playgroud)
我尝试过URI.escape和CGI.escape,但都没有用.
URI.escape('a.b')=> "a.b"
CGI.escape('a.b')=> "a.b"
Run Code Online (Sandbox Code Playgroud)
我以为我想要什么
Foo.escape('a.b')=> "a%2Eb"
Run Code Online (Sandbox Code Playgroud)
使用接受点字符的约束.
get 'sites/:site_name/plans', constraints: { site_name: /[a-zA-Z0-9\.]+/ }
Run Code Online (Sandbox Code Playgroud)
来自doc:
默认情况下,动态段不接受点 - 这是因为点用作格式化路径的分隔符.如果需要在动态段中使用点,请添加一个覆盖它的约束 - 例如,id:/ [^ /] + /允许除斜杠之外的任何内容.
归档时间: |
|
查看次数: |
1506 次 |
最近记录: |