【发布时间】:2010-11-04 21:01:37
【问题描述】:
为了澄清,情况如下:
我正在构建一个非常简单的 CMS,它将成为我计划在未来创建的几个应用程序的基础。我真的很希望能够创建一个名为“About”的页面(它将大部分是静态的)并能够在“/about”自动访问它,而无需修改 routes.rb。
我目前有一个这样的通配符路由,效果很好:
match '/*slug', :to => 'pages#dynamic_page',
:constraints => { :fullpath => /.+\.html/ }
问题是,我真的希望能够在最后省略“.html”。但是,我更喜欢扩展名而不是“/pages/about”之类的网址。有没有更好的方法来处理这个?当我删除约束时出现的问题是对不存在的项目的请求通过 Rails 路由器,这显然不太理想,因为这是必须处理的额外开销。
有没有更好的方法?如果请求的页面是静态页面,有什么方法可以完全避开路由器,这样我就可以消除通配符路由?
谢谢!
【问题讨论】:
标签: ruby-on-rails content-management-system routing