2011-04-14 96 views

回答

3

像這樣的事情也許

#config/routes.rb 
match "/:random_id" => "topics#show", :constraints => {:random_id => /([a-zA-Z]|\d){3,6}/} 

將3-6隨機字母/數字的隨機字符串匹配您的主題控制器的顯示方法。確保在此匹配器上方聲明其他資源,因爲諸如「http:// localhost:3000/pies」之類的內容將路由到Topics#show而不是Pies#index。

要爲您的主題隨機的網址,你可以去這樣的事情:

#app/models/topic.rb 
before_create :generate_random_id 

def generate_random_id 
    #generates a random hex string of length 6 
    random_id = SecureRandom.hex(3) 
end 
+0

帕特里克,我沒有工作;在我創建了一個主題後,URL顯示爲:(http:// localhost:3000/topics/1)我需要的是url創建後應該是:localhost:3000 /「random string」。請幫忙! – iosgcd 2011-04-15 18:45:24

+0

還在尋找答案:( – iosgcd 2011-04-24 18:28:01

0

帕特里克答案應該工作 - 但它僅覆蓋路由傳入的請求。 如果您仍在使用標準路線(例如topic_path)來創建鏈接,它仍將使用正常路線。

如果您運行耙路線,您應該看到用random_id創建的路線的名稱。 (您可能需要用它來命名:如=>「random_route」)

如果你調用,而不是標準topic_path你應該得到的路線,你是後