2010-10-01 115 views
0

如何才能實現seo友好的網址?如何在Rails中創建網址seofriendly

相反

http://mysite.com/articles/show/2 

我想用ArticleName的,而不是ID

mysite.com/articles/show/articlename 

或以某種方式結合的id和ArticleName的這樣

mysite.com/articles/show/articlename-2 

我「M一個鐵軌新手,所以也許你可以給我一個簡短的建議,在哪裏更改 什麼代碼?

回答

1

看看你的文章控制器,可能在app/controllers/articles.rb。你可能有一個名爲show方法,查找的文章ID像這樣的東西:

@article = Article.find(params[:id]) 

如果你知道ID將是該職位的不是它的id的標題,可以改爲擡頭使用

@article = Article.find_by_title(params[:id]) 

你的文章這將允許你使用有點醜陋的URL像/articles/show/This+is+the+title。如果您想製作一個稍微好看的網址,您可以在文章表中添加一列(稱爲seo_title),以便將標題翻譯爲帶下劃線的小寫字母,產生類似this_is_the_title的內容。

+0

謝謝你的工作很好,但是當我在視圖中使用它(<%= link_to「Details」,:action =>「show」, :title => article.title%>它給了我一個這樣的網址http:// localhost:3000/articles/show?title = articlename,但它應該是articles/show/articlename – and 2010-10-01 13:42:50

+0

@and:如果以這種方式執行,參數仍稱爲「id」(即使它包含標題而不是id),所以你需要將':id => article.title'傳遞給'link_to'。如果你想要這個參數被稱爲title,你需要改變路線。 – sepp2k 2010-10-01 13:49:13

+0

yes意識到這一點,現在很好用也爲了銷燬行動,唯一的問題仍然是編輯行動。我得到的錯誤無法找到與ID = Thisismyfirstarticletitle書籤。edit.html.erb看起來像這樣<%form_for:article,:url => {:action =>「更新」, :id => @ article.title} d o | f | %> – and 2010-10-01 13:57:45