假設我想在我的網站上有一個Rails 3的博客,它將是我唯一擁有的博客。我想使用Rails來實現它,但我不喜歡Rails生成的URL。我想的網址是這樣的:沒有控制器名稱的Rails 3 URL
example.com/2012/05/10/foo
我不希望這樣的事情,我知道怎麼做(與to_param):
example.com/entries/2012/05/10/foo
我仍然想使用幫手像
new_entry_path(@entry) # -> example.com/new
entry_path(@entry) # -> example.com/2012/05/10/foo
edit_entry_path(@entry) # -> example.com/2012/05/10/foo/edit
destroy_entry_path(@entry)
form_for(@entry)
link_to(@entry.title, @entry)
等等。然後,我將有意見,並希望讓他們爲自己的資源過於接近,像
example.com/2012/05/10/foo/comments/5
這些URL也應該能夠獲得與正常助手:
edit_entry_comment_path(@entry, @comment) # -> example.com/2012/05/10/foo/comments/5/edit
什麼像那樣。
那麼有可能獲得沒有控制器名稱的URL並仍然使用url helper方法?只需要覆蓋to_param就會改變url中控制器名稱後面的部分。獲得一些示例代碼會非常有幫助。
爲什麼這會被投票?這是正確的答案... – jaredonline
是的,我試圖自己解決這個問題 - 而不僅僅是一個,而是兩個!也許這是對解決方案表面上粗略的反對(我可以看到直覺指示路線將會是'// 2012/05/10/foo',並帶有一個額外的前斜線),但它絕對有效,而且絕對更容易,更多的Rails-y比手工重新實現所有足智多謀的路線。 – Matchu
是的。當我到達這裏時是-3。也許是因爲你指定的路線實際上沒有/年/月/日的東西? – jaredonline