我正在寻找类似 wordpress slug 的东西,我有这样的 URL,同时保持 RESTful 路由:
http://foo.com/blog/2009/12/04/article-title
我对保持 RESTFUL 路由感兴趣的原因是我无法使用许多插件,因为我正在使用自定义路由。
我已经完成了 RESTful 外观:
map.connect '/blog/:year/:mon/:day/:slug',
:controller => 'posts', :action => 'show',
:year => /\d{4}/, :month => /\d{2}/,
:day => /\d{2}/, :slug => /.+/,
:requirements => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/, :slug => /.+/ }
为了编写链接,我必须编写自定义 link_to 帮助程序来生成正确的 URL。我真的很想让这个 RESTful 并让 link_to post_path( @post ) 产生上面的 URL 和 link_to edit_post_path(@post) ...article-title/edit
我也有 :has_many => [:comments] 我希望它也能正常工作。我尝试过的 link_to 如下所示:
'posts', :action => 'show', :year => recent_post.datetime.year.to_s,
:month => sprintf('%.2d', recent_post.datetime.mon.to_i),
:day => sprintf('%.2d', recent_post.datetime.mday.to_i),
:slug => recent_post.slug %>
并产生这个(这不是我想要的):
http://foo.com/posts/show?day=30&month=11&slug=welcome-to-support-skydivers&year=2009
我不确定我做错了什么。甚至有可能做到这一点吗?