2011-03-16 66 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