2012-12-03 33 views
0

current best practices用於在留言板上給定線程REST風格的URL看起來應該是這樣的:如何在RESTful URL中使用slugs?

http://domain/forum/threads/3 

這也是一個常見的搜索引擎優化的做法,網址必須包含關鍵字(塞),所以也許上面的網址有可能成爲:

http://domain/forum/threads/3/title-of-this-particular-thread 

現在,編輯這個主題,再次,根據我掛在第一段的指引,網址是:

http://domain/forum/threads/3/edit 

當某人啓動一個標題爲「edit」的線程時會發生什麼?如何確定是否顯示或編輯該線程?

回答

1

而不是http://domain/forum/threads/3/title-of-this-particular-thread

你應該做http://domain/forum/threads/3-title-of-this-particular-thread

這將防止衝突,只是作爲搜索引擎友好。有幾個方法可以做到這一點,但最簡單的就是在模型中自動執行轉換添加to_param方法:

class Thread < ActiveRecord::Base 
    to_param 
    "#{id}-#{title}" 
    end 
end 

如果你需要比這更多的靈活性,或者不想重蹈覆轍在所有型號中,您可以使用friendly_id寶石。

+0

StackOverflow上的URL請求不同 – babonk