2011-03-16 64 views
0

在我的博客的轨道我写我想“秀”路线的帖子总是具有以下形式:修改行为3

/年/月/日/标题

目前我能做到这一点使用一个通用的匹配:

match "/:year/:month/:day/:url_title", :to => "posts#show", :constraints => {:year => /(19|20)\d\d/, :month => /[01]?\d/, :day => /[0-3]?\d/} 

在哪里我的模型负责标题转换成一个连字符分隔的字符串。

但是,我需要一种方法将此行为集成到资源路由中,以便我的post_path方法将继续工作 - 最好通过传递一个post对象。

我想知道是否有某种方式可以使用:as选项来设置路径,或者使用块来完成。

回答

1

你自己回答的问题只是使用:as => :post然后post_path(@post)会工作!

+0

哦!那么,我现在实际上正在尝试,但得到一个错误,即没有路线匹配这些选项,即使它正确地应用正确的字段。我想知道在我的正则表达式中是否有错误。 – 2011-03-16 04:38:41

+0

如果直接转到网址,它会工作吗? – errorhandler 2011-03-16 04:41:05

+0

是的。如果我完全删除约束,post_path(@post)也不起作用,这看起来很奇怪。 – 2011-03-16 04:45:18