我有一個類帖子導軌中模型的默認URL?
我希望每個職位的默認網址的http://domain.com/9383代替http://domain.com/posts/9383
我試圖修復它的路線。我設法接受domain.com/222,但如果我使用<%= url_for(@posts)%>我仍然可以獲得domain.com/posts/222
我該怎麼做?謝謝
我有一個類帖子導軌中模型的默認URL?
我希望每個職位的默認網址的http://domain.com/9383代替http://domain.com/posts/9383
我試圖修復它的路線。我設法接受domain.com/222,但如果我使用<%= url_for(@posts)%>我仍然可以獲得domain.com/posts/222
我該怎麼做?謝謝
創建幫手,也許你不能改變的url_for(@post)
與路線的行爲。如果將ActiveRecord
實例傳遞給它,則url_for
將假定設置爲map.resources
。
你倒是應該這樣做:
# routes.rb
map.post ":id", :controller => "posts", :action => "show"
# named route
post_path(@post)
# full link_to
link_to @post.title, post_path(@post)
如果您使用的是url_for
,則無法告訴它忽略/posts/
部分。我想你會需要application_helper.rb
def post_url(post)
"/#{post.id}"
end
重載url_for
似乎不被認爲是Rails的最佳做法,雖然看上去非常方便的給我。以下說明如何通過自定義ApplicationController
:http://arjanvandergaag.nl/blog/generating-fancy-routes-with-rails.html